|
Вставка с помощью хранимой процедуры. Oracle
|
|||
---|---|---|---|
#18+
Пытаюсь сделать вставку в БД с помощью ХП, вылетает ошибка: Код: plsql 1. 2. 3. 4. 5. 6.
Не могу понять, что не так, вот сам вызов: Код: c# 1.
Если вызывать ХП напрямую через ADO.NET, то все работает. Где я ошибся, подскажите? Вот маппинг: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Вот процедура: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
А вот полный лог ошибки: BEGIN W_MMKT.PK_STO.P_TEST_CREATE_ISPOB(:p0); END;:p0= 'MARATOSS_TEST1' [Type: String(14)], :p1= NULL [Type: String(0)], :p2= '' [Type: String(0)], :p3= '1' [Type: String(1)] Couldnot execute command: BEGIN W_MMKT.PK_STO.P_TEST_CREATE_ISPOB(:p0); END; System.Data.OracleClient.OracleException(0x80131938): ORA-01036: illegal variable name/number at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) at System.Data.OracleClient.OracleParameterBinding.Bind(OciStatementHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection, Boolean& mustRelease, SafeHandle& handleToBind) at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor) at System.Data.OracleClient.OracleCommand.ExecuteNonQuery() at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd) System.Data.OracleClient.OracleException(0x80131938): ORA-01036: illegal variable name/number at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) at System.Data.OracleClient.OracleParameterBinding.Bind(OciStatementHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection, Boolean& mustRelease, SafeHandle& handleToBind) at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor) at System.Data.OracleClient.OracleCommand.ExecuteNonQuery() at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd) at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation expectation) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session) ORA-01036: illegal variable name/number Couldnot synchronizedatabase statewith session NHibernate.Exceptions.GenericADOException: couldnot insert: [InstrumentPreparation.DetailUnit#1][SQL: BEGIN W_MMKT.PK_STO.P_TEST_CREATE_ISPOB(?); END;] ---> System.Data.OracleClient.OracleException: ORA-01036: illegal variable name/number at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc) at System.Data.OracleClient.OracleParameterBinding.Bind(OciStatementHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection, Boolean& mustRelease, SafeHandle& handleToBind) at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor) at System.Data.OracleClient.OracleCommand.ExecuteNonQuery() at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd) at NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation expectation) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session) --- End of inner exception stack trace --- at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session) at NHibernate.Action.EntityInsertAction.Execute() at NHibernate.Engine.ActionQueue.Execute(IExecutable executable) at NHibernate.Engine.ActionQueue.ExecuteActions(IList list) at NHibernate.Engine.ActionQueue.ExecuteActions() at NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2012, 11:16 |
|
Вставка с помощью хранимой процедуры. Oracle
|
|||
---|---|---|---|
#18+
Если в процедуру и в маппинге добавить еще 3 входных параметра, то все работает Код: c# 1.
Код: plsql 1.
Как добиться того, чтобы передавался только один параметр Value ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2012, 09:24 |
|
Вставка с помощью хранимой процедуры. Oracle
|
|||
---|---|---|---|
#18+
авторКак добиться того, чтобы передавался только один параметр Value? Код: c# 1.
Еще вопрос. У меня добавляются данные из одной таблицы в другую, с помощью этой процедуры. Как заполнить первичный ключ объекта, который сгенерировался, при сохранении? Первичный ключ задается sequence. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2012, 19:46 |
|
Вставка с помощью хранимой процедуры. Oracle
|
|||
---|---|---|---|
#18+
Для понятности примерчик. Вот сохраняю: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2012, 19:50 |
|
Вставка с помощью хранимой процедуры. Oracle
|
|||
---|---|---|---|
#18+
maratossДля понятности примерчик. Вот сохраняю: Код: c# 1. 2. 3.
Вот так сделал Код: c# 1. 2.
Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2012, 21:09 |
|
|
start [/forum/topic.php?fid=17&tid=1350424]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 312ms |
total: | 459ms |
0 / 0 |