我的架构中有一个表,其名称中带有括号(这是旧版,无法修改):
CREATE TABLE "Addresses"
("ID" NUMBER(*,0) ,
"FullAddress" NVARCHAR2(100),
"HomeNum" NVARCHAR2(25),
"StreetName" NVARCHAR2(50)
)
所以我想要的是能够通过动态 sql 更新这个表。这就是我尝试这样做的方式:
DECLARE
sql_upd_statement VARCHAR2(500) := '';
table_name VARCHAR2(20) := '"Addresses"';
column_name VARCHAR2(20) := '"FullAddress"';
BEGIN
--no rows will be updated, just a sample
sql_upd_statement := 'UPDATE stm.:1 SET :2 = SUBSTR( :2, 2 ) WHERE :2 IS NOT NULL AND :2 IS NULL';
dbms_output.put_line( sql_upd_statement );
EXECUTE IMMEDIATE sql_upd_statement USING IN table_name, column_name;
END;
请告诉我,是否有可能通过动态 sql 达到我想要的?尝试设置不带括号的 'table_name'、'column_name' 值 - 仍然没有运气。