Oracleドキュメントでは、ステートメントが、、、または()をサポートしていると記載されていSelect
ます。で実装したい場合、私が知っている唯一の解決策は、 USING引数がcharをデータベースの文字セットに変換することです。出力データ型はです。CHAR
VARCHAR2
CLOB
not NCHAR or NVARCHAR2
NVARCHAR
translate
CHAR_CS
VARCHAR2
DECLARE
TYPE CUR_DATA IS REF CURSOR;
OUT_DATA CUR_DATA;
SQL_Statement NVARCHAR2(4000); --declare this as VARCHAR2
SQL_Statement_var VARCHAR2(4000);
BEGIN
SQL_Statement := N'SELECT * FROM dual ';
SQL_Statement_var := TRANSLATE(SQL_Statement USING CHAR_CS);
OPEN OUT_DATA FOR SQL_Statement_var;
END;
No errors.
NVARCHAR2
必須でない場合は、提供されている基本的なデータ型で作成してみてください。
DECLARE
TYPE CUR_DATA IS REF CURSOR;
OUT_DATA CUR_DATA;
SQL_Statement VARCHAR2(4000); --declare this as VARCHAR2
BEGIN
SQL_Statement := ' SELECT * FROM dual ';
OPEN OUT_DATA FOR SQL_Statement;
END;
参照:
翻訳...使用
ステートメントのために開く