de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 arsenal
arsenal
Вопрос

Отсутствует параметр IN или OUT с индексом :: 8

    String s1 = "create table testing " +
          "(id number NOT NULL PRIMARY KEY, " +
          "url varchar(1000) NOT NULL, " +
          "urlHash varchar(1000) NOT NULL, " +
          "contentHash varchar(1000), " +
          "modDate date, " +
          "contentLocation varchar(1000), " +
          "status integer, " +
          "lastCrawlDate date) ";
String s2 = "create sequence " +sequenceName+ " start with 1 increment by 1 nomaxvalue";

stmt=conn.createStatement();
stmt.executeUpdate(s1);
stmt.executeUpdate(s2);

What's wrong with this below merge statement I always get error as

Missing IN or OUT parameter at index:: 8

Я пытаюсь преобразовать дату строки String Date DateType в oracle sql в подготовить statment

ps =  conn.prepareStatement(
"MERGE INTO testing " +
"USING (  SELECT ? AS url, " +     //We will maybe add this record
"                ? AS urlHash, " +
"                ? AS contentHash, "+
"        TO_DATE(?, 'YYYY-MM-DD'T'HH24:MI:SS'Z'') AS modDate, "+
"        ? AS contentLocation, "+
"        ? AS status, "+
"      TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AS lastCrawlDate "+
"           FROM dual ) maybe "+
"   ON (maybe.urlHash = testing.urlHash) "+
"       WHEN MATCHED THEN "+
// We only need update the fields that might have changed
"       UPDATE SET testing.contentHash     = maybe.contentHash, "+
"                  testing.modDate         = maybe.modDate, "+
"                  testing.contentLocation = maybe.contentLocation, "+
"                  testing.status          = maybe.status, "+
"                  testing.lastCrawlDate   = maybe.lastCrawlDate "+
// But only if the new record is more recent
"        WHERE TO_CHAR(testing.modDate, 'YYYY-MM-DD'T'HH24:MI:SS'Z'') < TO_CHAR(maybe.modDate, ''YYYY-MM-DD'T'HH24:MI:SS'Z''') "+
"       WHEN NOT MATCHED THEN "+
// Insert new URL record
"   INSERT VALUES (test_seq.nextval, maybe.url, maybe.urlHash, maybe.contentHash, maybe.modDate, maybe.contentLocation, maybe.status, maybe.lastCrawlDate)");


    ps.setString (1, "http://www.computergeeks.com");
    ps.setString (2, "ahsasoiowiewie");
    ps.setString (3, "sgasjwhwueybdbfndf");
    ps.setString (4, "2011-07-28T23:54:14Z");
    ps.setString (5, "c://");
    ps.setLong (6, 0);
    ps.setString (7, "2010-09-24 23:34:14"); 
    ps.executeUpdate();
    ps.close();
0 2011-10-27T20:07:30+00:00 2
Программирование
sql
oracle
prepared-statement
Dave Costa
27-го октября 2011 в 9:01
2011-10-27T21:01:22+00:00
Дополнительно
Источник
Редактировать
#56792244

Формат даты в вашем первом вызове TO_DATE не подходит - вы пытаетесь использовать одинарные кавычки внутри строки с одной кавычкой, поэтому она не закрывается должным образом. Вероятно, это дает синтаксический анализатор, что приводит к не очень разумному сообщению об ошибке.

В формате даты Oracle, буквальные биты должны быть заключены в двойные кавычки, а не одиночные:

select TO_DATE('2011-07-28T23:54:14Z', 'YYYY-MM-DD"T"HH24:MI:SS"Z"') from dual;

Вам необходимо вставить в ваш SQL-запрос формат 'YYYY-MM-DD "T" HH24: MI: SS "Z"' . Убедитесь, что вы избегаете двойных кавычек должным образом, чтобы они не прерывали строку Java.

2
0
bdetweiler
10-го июля 2012 в 9:43
2012-07-10T21:43:06+00:00
Дополнительно
Источник
Редактировать
#56792245

Это может не относиться к вашей проблеме, но я получал ту же ошибку, и у меня было две строки комментариев в начале моего SQL. Я переместил их на дно, и ошибка исчезла.

1
0
Похожие сообщества 8
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
3 499 пользователей
Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.
Открыть telegram
Oracle Developer👨🏻‍💻
Oracle Developer👨🏻‍💻
2 443 пользователей
Все о разработке в СУБД Oracle: SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое... Автор канала: Кивилёв Денис @denis_dbd Сотрудничество, обучение, вопросы, мнения - пишите. Youtube-канал: https://www.youtube.com/c/OracleDBD
Открыть telegram
sql_ninja
sql_ninja
2 312 пользователей
Канал для тех, кто знает или интересуется SQL 🛢 Взаимная помощь и позитив =) Вакансии тут - @sql_jobs ! Бан за: оскорбления, спам, рекламу, расизм, сексизм. Наш MSSQL канал - @sqlcom У нас есть викторина по mssql, наберите в привате c @Gopnegbot /quiz и
Открыть telegram
SQL JOBS
SQL JOBS
1 518 пользователей
Обязательны: компания, город, позиция, вилка, наличие удалёнки, требования, контакты. Бан за рекламу, сексизм, расизм и неадекватный обсёр объявлений
Открыть telegram
Oracle RU
Oracle RU
1 166 пользователей
Русскоязычная группа по Oracle. Архитектура, PL/SQL, Оптимизация, DBA Вакансии - по согласованию с адм. @ikamil Запрещены: личные оскорбления, мат, обсуждения оффтопик вопросов политики и религии Вопросы - после гугла, используя sqlfiddle, планы запроса
Открыть telegram
dbGeeks
dbGeeks
799 пользователей
Чат про базы данных, их устройство и приемы работы с ними. Разрешаются любые адеватные дискуссии в рамках тематики чата.
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 4 дня назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
JA
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией