定义了一个 declare tname varchar2(50) 然后在begin中 select tablename into tname from A where name = :new.name; 然后 insert into tname 这样就是错的。怎么解决? [解决办法] 现在这样,tname是个字符串,代表不了 表。 不知怎么解决,同求解 [解决办法] 考虑使用动态sql
v_sql := 'insert into ' [解决办法] tname [解决办法] ' values(...)';
execute immediate v_sql;
[解决办法]
如果需要以查询结果中的内容为字段名和字段类型建表该怎么办呢?比如:
DECLARE CURSOR cursor_temp IS SELECT * FROM TAB1 INNER JOIN TAB2 ON TAB1.FIELD1 = TAB2.FIELD1; BEGIN FOR e_Info IN cursor_temp LOOP -- 在这里 以e_Info.tabName为表名(其实还需要添加个后缀),以e_Info.FIELDNAME1 TAB1.FIELDNAME1%TYPE 为字段名和字段类型,然后在增加几个自定义字段建表,怎么办? END LOOP; END;