私は(それはより複雑だが、コンセプトは、私は、動的SQLが必要なことである)このように、ストアドプロシージャを用意していますPl/sqlはINパラメータを ''の間に入れる必要がありますか?
PROCEDURE PROCTEST(
P_TEST IN VARCHAR2,
P_RESULT OUT PCK1.CURSOR
);
私がやろうとしているすべての値を使用している(のは「MyTestに」を言わせて)を選択します。
MYSELECT:='SELECT * FROM MYTABLETEST WHERE MYCOL='||P_RESULT||;
問題は、私はこのエラーを取得することです:
ORA-00911: invalid character
私は私の選択を印刷するためならば、私は私が必要SELECT * FROM MYTABLETEST WHERE MYCOL=mytest
ないものを得る:
SELECT * FROM MYTABLETEST WHERE MYCOL='mytest'
:パラメータの数が既知である場合、好ましいアプローチは、SQLステートメントで(時には「バインド変数」と呼ばれる)パラメータを使用し、これ等のEXECUTE IMMEDIATE文の一部として、パラメータ値を渡すことですありがとう!このような単純なことは、そのような操作が必要であることは私には不思議に思えるようです。もし何か良いことがなければ答えを受け入れるつもりです。再度ありがとう –
これは最も簡単な方法です。 :) –
mycol = '' '|| p_result ||' '' '; '(またはもっと良い方法では、バインド変数を使用してください)なぜmyselect:=' select * from mytabletest? –