1、不太明
2、
create trigger a_tri
before insert on a
for each row
declare
str varchar2(60);
begin
str:='create table b (...)';
execute immediate str;
end;
/

解决方案 »

  1.   

    1。如何分析一条Select语句中包含的字段名??当然不能想象将该语句执行,到结果集中去取出字段,因为这条Select语句只有在特定条件下才能正确运行。
    -->如果你指的是在不执行select语句的前提下了解它的执行路径,可以用sqlplus中
    的set autotrace traceonly
      

  2.   

    如何分析一条Select语句中包含的字段名。==>那就需要自己写一个parser器了。不过满足这个要求的也简单。只需要把第一个select和第一个FROM间的字符串截出来,在按照逗号分割,去掉多余的空格就可以了。
      

  3.   

    写一个循环分析一下存放select语句的字符串,
    截取'select'与'from'之间的部分,不知道我理解的对不对
    如果是select * from tbname,就要到数据字典中查这个表的每个字段名了
      

  4.   

    你的第1个问题讲的不是很明白 你把你要的结果讲一下吧第2个grant create table to user_name;create or replace trigger t_t before insert on t for each row
    declare
      pragma autonomous_transaction;
      v varchar2(50);
    begin
      v:='create table a(n number)';
       execute immediate v;
    end;
    /
      

  5.   

    1.如果语法分析的话,你必须要考虑到各种的SQL函数以及表达式等等