問題タブ [execute-immediate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
24254 参照

oracle - CREATE table grant を使用しても即時実行が失敗する

ストアド プロシージャで execute immediately コマンドを使用してテーブルを作成しているときに問題が発生しました。ただし、「権限がありません」というエラーが表示されます。他のスレッドをチェックして、ユーザーに「CREATE TABLE」権限が付与されていることを確認しました。ただし、引き続き同じエラーが表示されます。

私が作成したダミーの手順は次のとおりです。

詳細なエラー:

私がやっていることは何か間違っていますか?

0 投票する
2 に答える
187 参照

oracle - すぐに実行すると、ライブラリ キャッシュがいっぱいになります

「すぐに実行」を介して実行されたクエリがライブラリ キャッシュでどのように処理されるかについて質問があります (Oracle 11 を使用しています)。

次のような関数があるとします。

getfield と searchfield は、1 つのインストールでは常に同じです (ただし、別のインストールでは他の値を持っているため、動的 SQL を使用する理由です)。これにより、searchvalue (パラメーターである) のみが異なる sql が残ります。この関数は、別のストアド プロシージャ内から x 回実行されるループで呼び出されます。ストアド プロシージャは、ODBC 接続を介して、接続の有効期間中に y 回実行されます。また、z 接続がありますが、それぞれが同じデータベース ログインを使用します。

また、1 回のループで検索値が b 回変化したとします。

質問 1: ライブラリ キャッシュに保持される SQL のコピーの数を計算するとき、searchvalue が持つことができるさまざまな値 (b) を無視できますか?

質問 2: ループによってクエリのハード解析が x 回発生しますか (クエリはライブラリ キャッシュに x 回作成されます)、または Oracle はクエリを再利用できますか? (ここでは、簡単にするために、この質問のすべての呼び出しで検索値が同じであると想定しています)

質問 3: y (1 つの接続の有効期間中に odbc からストアド プロシージャが呼び出される回数) も、ライブラリ キャッシュに保持されるクエリのコピーの量を増やしますか?

質問 4: z (同じデータベース ログインでの同時接続数) は、ライブラリ キャッシュに保持されるクエリのコピーの量を増やしますか?

主な質問: ここではどのような動作を期待する必要がありますか? 動作は構成可能ですか? この質問の原因は、このコードを 4 年間製品として使用してきたことです。現在、顧客の 1 人が「このクエリは SGA 全体を満たしていますが、オラクルはあなたのせいだと言っています」と言います。

0 投票する
1 に答える
578 参照

stored-procedures - ストアド プロシージャの実行 WHERE 句で即時エラーが発生する

アーカイブ テーブルから元のテーブルに 1 行をコピーしようとしています。

この句がないと、WHEREtable2 のテーブル全体が table1 にコピーされます。もちろん、これはしたくありません。したがって、リストされているグリッドビューの ID 値に基づいて、テーブルは ID が同じ行のみをコピーします。

行をデバッグすると、正しい ID が表示されDisplaySup.Rows(0).Cells(2).Textます。

それでもエラーが発生します

ORA-00904: "VAL_ID": 識別子が無効です

Table2 と Table1 の列は同じです。そのため、どちらにも というタイトルの列がありますV_ID。なぜVal_IDエラーにフラグを立てているのかわかりません。

VB.net のコーディング行:

だから私は参照しようとしました:エラーを与える USING 節を持つ EXECUTE IMMEDIATE

WHERE を修正するには、次のようにします。

しかし、私はエラーが発生します:

ORA-00904: "val_ID": 識別子が無効です

ストアド プロシージャを修正する方法について何か提案はありますか?

アップデート:

提案されたことをしようとしました:

しかし、エラーが発生します:

Select ステートメントの後の col72 の場合

私のテーブルの例 (どちらも同じです) table2 の目的は、table1 で行が削除されたときに、table2 が削除されたユーザーを再作成できることです。

表1

ID 会社名 名 姓 ....(72 列)

表2

ID CompanyName FirstName LastName... (72 列)

0 投票する
1 に答える
772 参照

oracle - テーブル名と列名が動的である場合の即時実行使用時の増分コミット

いくつかのテーブルを更新する必要があります。更新するテーブルと列は、別のテーブルから取得されます。したがって、プロシージャの更新ステートメントは次のようになります

ご覧のとおり、テーブル名、set 句、および where 句はすべて動的に構築されています。私が今やりたいことは、n レコードごとにコミットを実行することです。それ、どうやったら出来るの?

0 投票する
3 に答える
1430 参照

oracle - Oracle での動的 SQL の生成

plsql コードに問題があり、ほとんどすべてを試しています。今、私は自分の問題を解決するための心と力を失っています:)

すべてのテーブル スキーマで変数 v_ss に割り当てられた特定の文字列を検索し、それを DBMS_OUTPUT に出力したい場合があります。そのような場合の既製のソリューションがあることは知っていますが、自分でコーディングしたかったのです。以下のコードでは、v_stmt に「テーブルが存在しません」というエラーが表示されます。この select は rec.column_name を認識しないと思いますが、なぜですか?

これが私のコードです:

バグの説明と修正方法を教えてください。前もって感謝します

0 投票する
1 に答える
667 参照

oracle - このコードで oracle EXECUTE IMMEDIATE を正しく使用する方法

私は、xmlタグ値を抽出し、その値をオラクルのEXECUTE IMMEDIATEステートメントを使用してストアド関数として扱う次のpl SQLコードを持っています:

このコードは xml タグを見つけ<function>て、その値「get_val」を抽出し (それ自体がストアド関数です)、この関数を呼び出します。

上記のコードで output := 'pkg_xmltool'||'.'||xml_output||'()';

これを次のパターンで評価したい:

output := pkg_xmltool.get_val()get_val()これは、出力に値 100 を返す 関数を呼び出します。ここで、これはget_val関数本体です:

iam 新しいオラクル xml. このコードを修正するのを手伝ってください。