Я пытаюсь выполнить операцию вставки из спящего режима в таблицу Oracle.
Моя хранимая процедура:-
create or replace PROCEDURE ADMSN_TABLE (
P_ID NUMBER,
P_ADMISSIONFOR VARCHAR2,
P_SUBMISSIONDATE DATE, --NOT NULL
P_SUBMISSIONLASTDATE DATE --NOT NULL
)
IS
v_sno number;
BEGIN
INSERT INTO ORACLE.ADMISSION(AMSNID,ADMISSIONFOR,SUBMISSIONDATE,
SUBMISSIONLASTDATE)
VALUES (P_ID,P_ADMISSIONFOR,P_SUBMISSIONDATE,P_SUBMISSIONLASTDATE);
COMMIT;
END;
как я вызываю эту процедуру из спящего режима: -
public void callProc(){
Date utilDate= new Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(sqlDate);
Date date = new Date();
SimpleDateFormat smd = new SimpleDateFormat("dd-MMM-YYYY");
String sdate = smd.format(date);
System.out.println(sdate);
try {
session = sessionFactory.openSession();
transaction = session.beginTransaction();
StoredProcedureQuery query = session.createStoredProcedureQuery("ADMSN_TABLE");
query.registerStoredProcedureParameter("P_ID", Number.class,
ParameterMode.IN);
query.registerStoredProcedureParameter("P_ADMISSIONFOR", String.class,
ParameterMode.IN);
query.registerStoredProcedureParameter("P_SUBMISSIONDATE", Date.class,
ParameterMode.IN);
query.registerStoredProcedureParameter("P_SUBMISSIONLASTDATE",Date.class,
ParameterMode.IN);
query.setParameter("P_ID", 1);
query.setParameter("P_ADMISSIONFOR", "schoolfee");
query.setParameter("P_SUBMISSIONDATE", sqlDate);
query.setParameter("P_SUBMISSIONLASTDATE", sqlDate);
query.execute();
System.out.println("excuted");
}catch(Exception ex){
ex.printStackTrace();
}
}
}
теперь я попытался передать параметр даты как новый Date() или sqldate, как указано выше. и query.setParameter("P_SUBMISSIONLASTDATE", sqlDate,TemporalType.Date);но все они выдают ошибку: -
Caused by: org.hibernate.exception.SQLGrammarException:
Error calling CallableStatement.getMoreResults at
org.hibernate.exception.internal.SQLStateConversionDelegate.convert
(SQLStateConversionDelegate.java:106) at
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert
(StandardSQLExceptionConverter.java:42) at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert
(SqlExceptionHelper.java:111)
at org.hibernate.result.internal.OutputsImpl.convert
at org.hibernate.result.internal.OutputsImpl.
(OutputsImpl.java:55)
at org.hibernate.procedure.internal.ProcedureOutputsImpl.
(ProcedureOutputsImpl.java:32)
at org.hibernate.procedure.internal.ProcedureCallImpl.buildOutputs
(ProcedureCallImpl.java:453)
at org.hibernate.procedure.internal.ProcedureCallImpl.getOutputs
(ProcedureCallImpl.java:404)
at org .hibernate.procedure.internal.ProcedureCallImpl.outputs
(ProcedureCallImpl.java:663)
at org.hibernate.procedure.internal.ProcedureCallImpl.execute
(ProcedureCallImpl.java:646)
... 41 more
Caused by: java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'ADMSN_TABLE'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Подробнее здесь: https://stackoverflow.com/questions/451 ... ure-oracle
Передача даты в качестве параметра в хранимой процедуре (оракул) ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1770815230
Anonymous
Я пытаюсь выполнить операцию вставки из спящего режима в таблицу Oracle.
Моя хранимая процедура:-
create or replace PROCEDURE ADMSN_TABLE (
P_ID NUMBER,
P_ADMISSIONFOR VARCHAR2,
P_SUBMISSIONDATE DATE, --NOT NULL
P_SUBMISSIONLASTDATE DATE --NOT NULL
)
IS
v_sno number;
BEGIN
INSERT INTO ORACLE.ADMISSION(AMSNID,ADMISSIONFOR,SUBMISSIONDATE,
SUBMISSIONLASTDATE)
VALUES (P_ID,P_ADMISSIONFOR,P_SUBMISSIONDATE,P_SUBMISSIONLASTDATE);
COMMIT;
END;
как я вызываю эту процедуру из спящего режима: -
public void callProc(){
Date utilDate= new Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(sqlDate);
Date date = new Date();
SimpleDateFormat smd = new SimpleDateFormat("dd-MMM-YYYY");
String sdate = smd.format(date);
System.out.println(sdate);
try {
session = sessionFactory.openSession();
transaction = session.beginTransaction();
StoredProcedureQuery query = session.createStoredProcedureQuery("ADMSN_TABLE");
query.registerStoredProcedureParameter("P_ID", Number.class,
ParameterMode.IN);
query.registerStoredProcedureParameter("P_ADMISSIONFOR", String.class,
ParameterMode.IN);
query.registerStoredProcedureParameter("P_SUBMISSIONDATE", Date.class,
ParameterMode.IN);
query.registerStoredProcedureParameter("P_SUBMISSIONLASTDATE",Date.class,
ParameterMode.IN);
query.setParameter("P_ID", 1);
query.setParameter("P_ADMISSIONFOR", "schoolfee");
query.setParameter("P_SUBMISSIONDATE", sqlDate);
query.setParameter("P_SUBMISSIONLASTDATE", sqlDate);
query.execute();
System.out.println("excuted");
}catch(Exception ex){
ex.printStackTrace();
}
}
}
теперь я попытался передать параметр даты как новый Date() или sqldate, как указано выше. и query.setParameter("P_SUBMISSIONLASTDATE", sqlDate,TemporalType.Date);но все они выдают ошибку: -
Caused by: org.hibernate.exception.SQLGrammarException:
Error calling CallableStatement.getMoreResults at
org.hibernate.exception.internal.SQLStateConversionDelegate.convert
(SQLStateConversionDelegate.java:106) at
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert
(StandardSQLExceptionConverter.java:42) at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert
(SqlExceptionHelper.java:111)
at org.hibernate.result.internal.OutputsImpl.convert
at org.hibernate.result.internal.OutputsImpl.
(OutputsImpl.java:55)
at org.hibernate.procedure.internal.ProcedureOutputsImpl.
(ProcedureOutputsImpl.java:32)
at org.hibernate.procedure.internal.ProcedureCallImpl.buildOutputs
(ProcedureCallImpl.java:453)
at org.hibernate.procedure.internal.ProcedureCallImpl.getOutputs
(ProcedureCallImpl.java:404)
at org .hibernate.procedure.internal.ProcedureCallImpl.outputs
(ProcedureCallImpl.java:663)
at org.hibernate.procedure.internal.ProcedureCallImpl.execute
(ProcedureCallImpl.java:646)
... 41 more
Caused by: java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'ADMSN_TABLE'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Подробнее здесь: [url]https://stackoverflow.com/questions/45179935/passing-date-as-a-parameter-in-stored-procedure-oracle[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия