誰もがこのエラーで私を助けることができますか?私は毎日/月に変更されるテーブル名を連結するCreate Tableステートメントを即時実行したかったのです。即時即時作成テーブル
これは私のコードです...
DECLARE
v_table_name VARCHAR2(100);
v_get_fromdate VARCHAR2(200);
BEGIN
v_table_name := 'mpiat_after_bs_' || SUBSTR(TO_CHAR(SYSDATE, 'ddmonyy'), 3, 5) || '_t';
v_get_fromdate := 'select GET_FROMDATE(to_date(''01/'|| SUBSTR(TO_CHAR(SYSDATE, 'mmddyy'), 1, 2
) ||'/2017 00:00:00'',''dd/mm/yyyy hh24:mi:ss''),''R'') from dual;';
EXECUTE IMMEDIATE ''
CREATE TABLE ' || v_table_name || ' AS
SELECT column1 ,
column2 ,
column3 ,
column4 ,
column5
FROM table_name
WHERE column1 >=' || v_get_fromdate ||'
AND column3 LIKE ''tbl_%''';
END;
これは私がこれに関する多くのコードを検索した私が取得しています...
Error report -
ORA-00936: missing expression
ORA-06512: at line 7
00936. 00000 - "missing expression"
*Cause:
*Action:
Line 7 is EXECUTE IMMEDIATE 'CREATE TABLE ' || v_table_name || ' AS SELECT column1
エラーです。 ..しかし、私は誰もテーブルを作成している間、変数としてテーブル名を連結していない。
これが可能かどうかを知りたいだけです。そして、私はこれがうまくいくように提案しています。ありがとうございました!
正確なコードで質問を更新することができます –
引用符を確認してください。例えば。 'EXECUTE IMMEDIATE '''は 'EXECUTE IMMEDIATE 'でなければなりません。また、サブクエリ(v_get_fromdate)で ';'を使用することはできません – daZza
これは正確なコードです。データ保護の値を変更するだけです。ありがとうございます – Luis