请教各位老师这样一个问题:
我向写这样一个需求,就是每天要自动的从不同的表中查数据,放入另一个表中。例如:2008-08-01去b01表查数据,2008-08-02去b02表查数据。存储过程中就要将日期中的日和b组合最为表名,但是在存储过程中,就是查不出来,老报错。
举一个例子:
create or replace procedure c_procedure
is
v_date varchar2(25):='chen';
v_a varchar2(100):='chen123';
v_sql varchar2(100);
begin
dbms_output.put_line(v_a);
v_sql:='select id into v_date from '||v_a||' where rownum<2';
execute immediate v_sql;
end;
这段代码就是执行不出来,由什么错吗?
我向写这样一个需求,就是每天要自动的从不同的表中查数据,放入另一个表中。例如:2008-08-01去b01表查数据,2008-08-02去b02表查数据。存储过程中就要将日期中的日和b组合最为表名,但是在存储过程中,就是查不出来,老报错。
举一个例子:
create or replace procedure c_procedure
is
v_date varchar2(25):='chen';
v_a varchar2(100):='chen123';
v_sql varchar2(100);
begin
dbms_output.put_line(v_a);
v_sql:='select id into v_date from '||v_a||' where rownum<2';
execute immediate v_sql;
end;
这段代码就是执行不出来,由什么错吗?
解决方案 »
- sql语句 字段值不显示
- 如何查询一个表的主键、外键、索引等信息?
- 如何优化SQL语句?急!
- plsql 操作 海量数据 怎么才是效率最高的方式
- Text,RTF,XML,HTML,HEX,EXTERNAL
- 把CLOB写到文件中,请高手解决
- 我发现安装了Oracle8i之后,我的电脑从开机登录到启动完成变得很慢了,有几分钟时间,请问这是正常的吗?还是巧合,在这时候中了病毒了?
- 数据库字符集的问题!!
- 关于flashback_transaction_query和dba_fga_audit_trail(已经commit)数据不能匹配的问题
- ORA-38729: 执行 FLASHBACK 的闪回数据库日志数据不足
- Orcale面试题
- 两个表进行比较,表结构相同,比较数据是否相同,应该如何写?谢谢
...
v_sql:='select id from '||v_a||' where rownum <2';
execute immediate v_sql into v_date;
...
v_date varchar2(25):='chen';
v_a varchar2(100):='chen123';
v_sql varchar2(100);
mycursor INTEGER;
ignore INTEGER;
begin
v_sql:='select id into v_date from '||v_a||' where rownum <2';
mycursor := dbms_sql.open_cursor;
dbms_sql.parse(mycursor,v_sql,1);
DBMS_SQL.DEFINE_COLUMN(mycursor,1,v_date ,25);
ignore := dbms_sql.execute(mycursor);
if DBMS_SQL.FETCH_ROWS(mycursor) <> 0 then
DBMS_SQL.COLUMN_VALUE(mycursor,1,v_date );
end if;
dbms_sql.close_cursor(mycursor); end;
v_sql:='select id into v_date from '||v_a||' where rownum <2';
该为 v_sql:='select id into :v_date from '||v_a||' where rownum <2';
SQL> edit
已写入 file afiedt.buf 1 create or replace procedure c_procedure
2 is
3 v_date varchar2(25):='SCOTT';
4 v_a varchar2(100):='EMP';
5 v_sql varchar2(100);
6 begin
7 dbms_output.put_line(v_a);
8 v_sql:='select ename into :v_date from '||v_a||' where rownum <2';
9 dbms_output.put_line(v_sql);
10 execute immediate v_sql;
11 dbms_output.put_line(v_date);
12* end;
SQL> /过程已创建。SQL> exec c_procedure
EMP
select ename into :v_date from EMP where rownum <2
SCOTTPL/SQL 过程已成功完成。