2016-05-27 10 views
-1

一部のコードを更新する必要があります。このコードの一部として、行をテーブルに挿入してid主キー)を入力します。VB.NET Oracle SQL「INSERT INTO」に「RETURNING INTO」を指定すると、ORA-00933コマンドが正しく終了しない

これを調べて、私はRETURNING INTOとOracle Parametersを使用しているはずです。過去にパラメータを使用して値を挿入しました。

私はVB.NETから完全に実行されるINSERT文を持っていますが、できるだけ早く私は「INTO IDをRETURNING:MYID」テキスト」を追加すると、私はORA-00933コマンドが正しく終了していない取得ここで

されます。コードのバージョン

sql = "INSERT ... RETURNING id INTO :myId" 
Connect() 
Dim intRecsAffected As Integer = 0 

Dim comm As OracleCommand = New OracleCommand(sql, _conn) 
Dim param As OracleParameter 
param = New OracleParameter() 

param.ParameterName = ":myId" 
param.OracleDbType = OracleDbType.Int32 
param.Direction = ParameterDirection.Output ' Tried ReturnValue 

comm.Parameters.Add(param) 

intRecsAffected = comm.ExecuteNonQuery() 
id = comm.Parameters(":myId").Value 

Disconnect() 

任意のアイデア

+0

SQLには何か問題がありますが、部分的にしか表示していないので、本当に助けにはなりません。完全なSQLを投稿してください。 – sstan

+0

RETURNING INTOはSQLではなくPL/SQL構文であるため、匿名PL/SQLブロック(BEGINおよびENDで囲む)を使用する必要があります。 –

答えて

0

実際には何が起こっていたかを認識してください。私はかなり長いので、私は完全なSQLをカットし、そこにいくつかの敏感なものがあります。

INSERTは、VALUESではなくSELECTを使用して、フィールドの値を取得していました。それは動作しません - 私は推測しているので、SELECTとのINSERTは複数の行を追加することができますが、この場合はそうではありません。

VALUESを使用するようにSQLを書き直してください。VB.Netコードは正常に動作します。

回答したすべての方に感謝します。

関連する問題