这个Oracle动态查询错在了哪里 本帖最后由 yux007 于 2009-07-14 11:20:07 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 必须要有个"对象"接收V_SQL返回的结果集 execute immediate v_sql into xxx;或者for cursor_ in v_sql loop ... end loop; 为什么这样还不行呢:declare l_cmd varchar2(100) := 'select * from '; l_tblnam varchar2(20) := 'aaa_test'; v_sql varchar2(500); v_out varchar2(100);begin v_sql:= l_cmd || l_tblnam || ';'; dbms_output.put_line(v_sql); execute immediate v_sql into v_out;end; DECLAREl_cmd varchar2(100);l_tblnam varchar2(20);v_sql varchar2(500); BEGINl_cmd:='select * from '; l_tblnam:='code_area'; v_sql:=l_cmd||l_tblnam||';'; dbms_output.put_line(v_sql);execute immediate V_SQL into xxx; END;DECLARE 声明,在BEGIN里赋值 我这样改了一下:DECLAREl_cmd varchar2(100);l_tblnam varchar2(20);v_sql varchar2(500);v_out varchar2(100);BEGINl_cmd:='select * from ';l_tblnam:='aaa_test';v_sql:=l_cmd||l_tblnam||';';dbms_output.put_line(v_sql);execute immediate V_SQL into v_out;END;执行报错:无效字符 麻烦给个可以直接运行的语句,初学oracle,见笑 如果是初学,那就先学习一下存储过程里怎么调用静态的sql 改好了DECLAREl_cmd varchar2(100);l_tblnam varchar2(20);v_sql varchar2(500);v_out varchar2(100);BEGINl_cmd:='select * from ';l_tblnam:='aaa_test';v_sql:=l_cmd||l_tblnam;dbms_output.put_line(v_sql);execute immediate V_SQL into v_out;END; C#中,通过调用XML语言,调用oracle脚本分号问题 SQL查询时,子表两行数据怎么显示为一行?如下: win7装oracle 10g失败了,大虾们帮忙啊!!!3333333qqqqqqq 一个oracle面试题 关于ORACLE 大数据量分页 在oracle中处理字符串的问题。 关于在多数据文件对应同一个表空间中建表的问题 一个菜鸟的关于起步学习ORACLE9I的问题!在线等待! 请问有没有方法把一个记录集中的某一列直接连接成一个串输出??? 这个触发器该怎么写? Oracl最快存储速度? 复杂的组合算法,请求帮助!!!!!
或者for cursor_ in v_sql loop ... end loop;
declare
l_cmd varchar2(100) := 'select * from ';
l_tblnam varchar2(20) := 'aaa_test';
v_sql varchar2(500);
v_out varchar2(100);
begin
v_sql:= l_cmd || l_tblnam || ';';
dbms_output.put_line(v_sql);
execute immediate v_sql into v_out;
end;
l_cmd varchar2(100);
l_tblnam varchar2(20);
v_sql varchar2(500);
BEGIN
l_cmd:='select * from ';
l_tblnam:='code_area';
v_sql:=l_cmd||l_tblnam||';';
dbms_output.put_line(v_sql);
execute immediate V_SQL into xxx;
END;
DECLARE 声明,在BEGIN里赋值
我这样改了一下:
DECLARE
l_cmd varchar2(100);
l_tblnam varchar2(20);
v_sql varchar2(500);
v_out varchar2(100);
BEGIN
l_cmd:='select * from ';
l_tblnam:='aaa_test';
v_sql:=l_cmd||l_tblnam||';';
dbms_output.put_line(v_sql);
execute immediate V_SQL into v_out;
END;
执行报错:无效字符
DECLARE
l_cmd varchar2(100);
l_tblnam varchar2(20);
v_sql varchar2(500);
v_out varchar2(100);
BEGIN
l_cmd:='select * from ';
l_tblnam:='aaa_test';
v_sql:=l_cmd||l_tblnam;
dbms_output.put_line(v_sql);
execute immediate V_SQL into v_out;
END;