2016-06-14 2 views
-2

私は、PL/SQL機能を持っており、その中で、私は次のコード持っているために終了していない:この行のSQLコマンドが正常にselect文

execute immediate 'select ' || schemaname || '.' || value1 || '_seq.nextval from dual into cnpParmId'; 

を、私はエラーを取得しています:

SQL Error: ORA-00933: SQL command not properly ended

上記のコードでは、選択クエリの結果からvalue1が取得されています。 schemanameは関数の入力であり、cnpParmIdは関数の戻り値です。

私はこれを解決するためにさまざまな方法を試しましたが、まだエラーが発生します。

答えて

1

それは私達にあなたの手順の多くを表示せずに言うのは難しいのですが、私はそれはあなたがあなたの動的SQLでcnpParmId連結することを意味するものではありませんでした公正な推測だと思う(動的SQLはおそらくcnpParmIdを解釈する方法を知っている可能性がどのように?) 。 cnpParmIdはおそらくプロシージャのどこかで定義されています。代わりに、あなたはおそらくexecute immediateコマンドのinto句を使用することを意図し

execute immediate 'select ' || schemaname || '.' || value1 || '_seq.nextval from dual' 
into cnpParmId; 
+0

これは、関数がどのように見えるかです: – bin

+0

申し訳ありませんが、私はちょうどその時それが必要私は、into'を返す '言っていたが実現単純に「入り込んだ」。しかし、その点は同じで、 'into'節は動的SQLの一部であってはいけません。 – sstan

+0

私はこのようにしましたが、doent work:即時実行 'select' || schemaname || '。' ||値1 || '_seq.nextval from dual'をcnpParmIdに追加します。エラー:SQLエラー:ORA-00904: "CNPPARMID":無効な識別子 – bin

関連する問題