質問

ものは何か : スタンドは、クエリー?

INSERT INTO MyTable (ID) VALUES (:myId)

どのような取得を希望す。

編集: でも何がある。たいと思った検索にgoogleが、何の名称 :?

役に立ちましたか?

解決

それがOracleにバインド変数に呼ばれています。

  ":"

の名前何です

コロンます。

他のヒント

ものは何か":"台は、クエリー?

A バインド変数.結合する変数を単一のSQL文(かどうかのクエリはDML)の再利用も多く、セキュリティ(およdisallowing SQLインジェクション攻撃)とパフォーマンス"(量削減による解析が必要です。

どのような取得を希望す。

前のクエリー(DMLにより行われるが、Oracle、プログラムをカーソルを移動させます。プログラム課題のSQL構文解析されるとカーソルのなら、それはバインド値毎にバインド変数と呼ばれているSQL.この言語です。

何がある。

コロン.

この名前付きクエリパラメータ用のタグで、クエリの実際の構文の一部ではありません。タグは、それが実際に実行される前に、クエリを行うコードで指定されたいくつかの値に置き換えられます。

コロン:が関与パラメータがあることを意味するHQLにHibernateクエリ言語で使用されます。

だから何な手段ということは、次のとおりです。 SQL構文ます:

SELECT * FROM EMPLOYEE WHERE EMP_ID = empID
HQL構文と同じです。

SELECT * FROM EMPLOYEE WHERE EMP_ID = :empID

のパラメータのempIDているローカル変数...

希望このことができます。

考え、以下の諸表

select name from T_emp where id=1;
select name from T_emp where id=2;
select name from T_emp where id=3;

各時間の算が実行され、オラクルチェック前の発生を同じクエリ。ができるようにするためのlibsoupお、同じクエリでのものを採用することができ 実行プラン.ない場合は、その種々の実行経路の最適な実行計画を設定することができます。

とは異なり人のいないこのidを変更して上記の例)。このため、すべての苦労を実施します。

があるからOracle、その計算で使用でき、同じ実行プラン- バインド変数.見てください以下の例:

declare
  v_id number;
  v_name varchar2(30);
  type c is ref cursor;
  c1 c;
begin
  for i in 1..100
   loop
    open c1 for 'select * from T_emp where id = :x' using i;
    fetch c1 into v_name;
    dbms_output.put_line('name is ' || v_name);
   end loop;
END;

を結合する変数を改善するための性能up.PL/SQLで使用されないようにする方法は、結合する変数を独自にするのに必要な明示的に伝えで)

また、デルファイクエリ

のパラメーター構文です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top