截断 Oracle PL/SQL 块中的多个表失败
Truncating multiple tables in a Oracle PL/SQL block fails
运行 以下脚本:
import cx_Oracle
conn = cx_Oracle.connect(user = db_user, password = db_pwd, dsn = 'TULSA').
cur = conn.cursor()
sql = ("""
BEGIN
truncate table shop_ord_temp;
truncate table shop_ord_item_temp;
truncate table shop_cust_temp;
END;
""")
cur.execute(sql)
cur.close()
conn.close()
在 运行 这个匿名区块时收到这个错误:
cx_Oracle.DatabaseError: ORA-06550: line 3, column 22:
PLS-00103: Encountered the symbol "TABLE" when expecting one of the following:
:= . ( @ % ;
您可以使用:
sql = ("""
BEGIN
execute immediate 'truncate table shop_ord_temp';
execute immediate 'truncate table shop_ord_item_temp';
execute immediate 'truncate table shop_cust_temp';
END;
""")
这是一个 PL/SQL 功能,与 Python 无关。
运行 以下脚本:
import cx_Oracle
conn = cx_Oracle.connect(user = db_user, password = db_pwd, dsn = 'TULSA').
cur = conn.cursor()
sql = ("""
BEGIN
truncate table shop_ord_temp;
truncate table shop_ord_item_temp;
truncate table shop_cust_temp;
END;
""")
cur.execute(sql)
cur.close()
conn.close()
在 运行 这个匿名区块时收到这个错误:
cx_Oracle.DatabaseError: ORA-06550: line 3, column 22:
PLS-00103: Encountered the symbol "TABLE" when expecting one of the following:
:= . ( @ % ;
您可以使用:
sql = ("""
BEGIN
execute immediate 'truncate table shop_ord_temp';
execute immediate 'truncate table shop_ord_item_temp';
execute immediate 'truncate table shop_cust_temp';
END;
""")
这是一个 PL/SQL 功能,与 Python 无关。