通过if子句创建脚本的问题

问题描述 投票:0回答:1

我们正在尝试构建一个脚本,该脚本将自动检查是否已创建表,如果已创建,则脚本应结束。如果未创建表,则脚本应创建该表。

    case 
    if select count( *) from ALL_TAB_COLS where table_name = 'GPS_TRACKER_DATA' = 0 then
    create table AZUBI.GPS_TRACKER_DATA as select * from KAKATEL.GPS_POSITION
    else END

这是我们得到的错误

    Error starting at line : 3 in command -
    create table FEZ.GPS_TRACKER_DATA as select * from KAKATEL.GPS_POSITION
    else END
    Error report -
    ORA-00933: SQL command not properly ended
    00933. 00000 -  "SQL command not properly ended"
    *Cause:    
    *Action:
sql oracle plsql
1个回答
0
投票
DECLARE V_CNT NUMBER := 0; BEGIN SELECT COUNT(*) INTO V_CNT FROM ALL_TABLES WHERE TABLE_NAME = 'GPS_TRACKER_DATA' AND OWNER = 'AZUBI'; IF V_CNT = 0 THEN EXECUTE IMMEDIATE 'create table AZUBI.GPS_TRACKER_DATA as select * from KAKATEL.GPS_POSITION'; END IF; END; /

欢呼!!


0
投票
declare v_cnt pls_integer; begin select count(*) into v_cnt from ALL_TAB_COLS where table_name = 'GPS_TRACKER_DATA'; if v_cnt = 0 then execute immediate 'create table AZUBI.GPS_TRACKER_DATA as select * from KAKATEL.GPS_POSITION'; end if; end; /

对于PL / SQL块中的DDL语句,您需要execute immediate

© www.soinside.com 2019 - 2024. All rights reserved.