请教各位老师这样一个问题:
我向写这样一个需求,就是每天要自动的从不同的表中查数据,放入另一个表中。例如: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;
这段代码就是执行不出来,由什么错吗?
解决方案 »
- 高分求解-oracle 对executeBatch的支持?
- 如何判断Rollback per transaction值是不是太高的问题
- 大家慎用materilized view
- sql语句优化
- 依次求002~009,003~009,004~009,005~009,006~009,007~009,008~009 ...........中的最大值
- 再问一个关于“TNS:监听程序不能解析在连接描述符给出的SERVICE_NAME”的问题!!
- 向高手求救一个材料分解问题,急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 服务“OracleOraHome90Agent”是干什么用的? 好象没影响什么。
- 如何在sql语句中将时间准确到小时??
- oracle远程连接
- 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 过程已成功完成。