这是我的plsql块
BEGIN
FOR c IN ( SELECT T.table_name FROM user_tables T INNER JOIN (SELECT distinct to_char(SYSTEM_DATE,'yyyymmdd') as sys_date FROM *) ON T.table_name LIKE '%' || sys_date || '%' )
LOOP
EXECUTE IMMEDIATE 'DROP TABLE ' || c.table_name || ' CASCADE';
END LOOP;
END;
我正在丢失关键字错误
Error report:
ORA-00905: missing keyword
ORA-06512: at line 4
00905. 00000 - "missing keyword"
*Cause:
*Action:
您能告诉我代码中有什么问题吗?
答案 0 :(得分:2)
如果您看看Standard DOCS
您将了解您需要将DROP
语句写为-
DROP TABLE TABLE_NAME CASCADE CONSTRAINTS;
您的SQL缺少CONSTRAINTS
关键字
答案 1 :(得分:1)
DROP TABLE ' || c.table_name || ' CASCADE
是 this
DROP TABLE名称[,...] [级联|限制]
但不在PostgreSQL中,该期望没有CASCADE或CASCADE CONSTRAINTS
子句:
指定CASCADE CONSTRAINTS,以删除所有引用完整性约束,这些约束引用了删除表中的主键和唯一键。如果省略此子句,并且存在此类参照完整性约束,则数据库将返回错误,并且不会删除该表。