行タイプのフィールドに値を割り当てたいのですが、その方法がわかりません。
データベース内にテーブルXがあるとします。
また、次の変数があるとします
a
(X%ROWTYPE
)、テーブル X の行を表すb
(VARCHAR2
)、テーブル X の列名を含むc
(VARCHAR2
)、ab 内に保存したいものを含む
私がやりたいこと:のようなものa.b := c
。
私はこのようなものを思いついた:
EXECUTE IMMEDIATE 'SELECT '|| c || ' INTO a.' || b || ' FROM DUAL';
どうやら、これは正しい方法ではありません。ORA-0095: キーワードがありませんというエラーが表示されます。
誰でもこれで私を助けることができますか?
完全なコードは次のとおりです。
DECLARE
tRow MyTable%ROWTYPE;
col_name VARCHAR(10) := 'Length';
nValue NUMBER(12,4) := 0.001;
dynamic_request VARCHAR(300);
BEGIN
dynamic_request := 'SELECT '|| nValue || ' INTO tRow.' || col_name || ' FROM DUAL';
EXECUTE IMMEDIATE dynamic_request;
END;