2017-12-19 10 views
-2

のNode.js:版9.2 ORACLEDBドライバ:2.0.15 を私はコーディングの200行の宣言、実行、例外セクションで匿名のPL/SQLプロシージャを作成しました。のNode.js/ORACLEDBドライバ制限版

これは、Oracleサーバー上で直接実行しているときや、それを実行できるツールを使用しているときに完全に正常に動作します。ただし、.jsファイル内から実行すると、エラーが発生します。

"detailed_message": "ORA-06550:行1、列3681:\ nPL/SQL:ORA-00905:キーワードがありません\ nORA-06550:行1 \ n PLA-SQL:SQL文が無視されました\ nORA-06550:行1、列3736:\ nPLS-00103:次のいずれかが予想される場合、\ "ELSE \"というシンボルが見つかりました:\ n \ n gotoの終了例外の終了を宣言する\ nヌルプラグマを返すreturnを返す\ nを使って更新を選択する

コードがサーバー上で直接実行されるので、プロシージャ自体の問題は疑わしくない。 100行未満のコードを持つもう1つの無名プロシージャは、.jsファイルからうまく動作しているようです。

このような長い手順を実行しているdbドライバに制限があるかどうかを知りたいです。 (私はこのプロシージャをDBに格納したくないでしょう)

答えて

1

node-oracledbのPL/SQLブロック・サイズに人為的な制限はありません。

構文を確認してください。見積もり処理。現在のexamples use backticksに注意してください。

あなたが一緒に引用符で囲まれた文字列を連結している場合は、必ず各文字列は空白で終わるか、始まる作りは:

"BEGIN " + 
"FORALL ... " + 
... 
+0

はご確認のためにあなたのクリストファーありがとうございました。今私はその角度から更新して見ていきます。 –

+0

引用符付きの文字列内にあったにもかかわらず、二重ハイフン( - )pl \ sqlコードのコメントが問題でした。そこで手続きはDB上で直接的に行われました。 –