set @str_sql=' insert into DS_ACCOUNT '+
' (ACCYEAR ,ENTCODE ,ENTNAME,ACCCODE ,ACCNAME )'+
' select '+@v_accyear +' ,'''+@v_entcode+''' ,'''+@v_entname+''',kmdm ,kmmc from '+@v_dbname+'..km '+
' order by kmdm '
EXEC(@str_Sql) 这个是SQLSERVER里的语句。 请问用PL/SQL 应该怎么写?
' (ACCYEAR ,ENTCODE ,ENTNAME,ACCCODE ,ACCNAME )'+
' select '+@v_accyear +' ,'''+@v_entcode+''' ,'''+@v_entname+''',kmdm ,kmmc from '+@v_dbname+'..km '+
' order by kmdm '
EXEC(@str_Sql) 这个是SQLSERVER里的语句。 请问用PL/SQL 应该怎么写?
p_user_id_i in varchar2
)
as
x_sql varchar2(2000);
begin
x_sql := 'insert into test1(aa,bb) values (''a'','''||p_user_id_i||''')';
execute immediate x_sql;
end aaaaa1;
/
as
v_sql varchar2(2000);
begin
v_sql:='insert into db_account(ACCYEAR ,ENTCODE ,ENTNAME,ACCCODE ,ACCNAME)select :1,:2,:3,kmdm,kmmc from :4 order by kmdm';execute immediate v_sql using p_accyear,p_entcod,p_entname,p_dbname;end;
/
begin
test_pro('year','code','name','dname');--此处的4个值,根据实际情况输入
end;
/
insert into DS_ACCOUNT
values (ACCYEAR ,ENTCODE ,ENTNAME,ACCCODE ,ACCNAME )
select '&v_accyear' ,'&v_entcode' ,'&v_entname',kmdm ,kmmc from '&v_dbname as km order by kmdm
写存储过程就像2楼
这里面 dbname 是一个变量 是用户的名字 而我要的是 dbname用户下的KM表里的数据 就这个地方我搞不清楚怎么弄直接dbname.km是不好使的。。
str_sql varchar2(4000);
begin
str_sql:=...;
execute immediate str_sql;
exception
when others then
null;
end;