SQL> create or replace procedure test_pro(t_table varchar2) is
2 v_sql varchar2(1000);
3 v_name varchar2(10);
4 begin
5 v_sql:=' select ename into v_name from' ||t_table||' where empno = 7788 ';
6 execute immediate v_sql;
7 exception
8 when others then
9 null;
10 dbms_output.put_line('姓名'||v_name);
11 end ;
12 /
Procedure created
SQL> exec test_pro('emp');
姓名
PL/SQL procedure successfully completed
SQL> select * from emp where empno= 7788 ;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20
--
2 v_sql varchar2(1000);
3 v_name varchar2(10);
4 begin
5 v_sql:=' select ename into v_name from' ||t_table||' where empno = 7788 ';
6 execute immediate v_sql;
7 exception
8 when others then
9 null;
10 dbms_output.put_line('姓名'||v_name);
11 end ;
12 /
Procedure created
SQL> exec test_pro('emp');
姓名
PL/SQL procedure successfully completed
SQL> select * from emp where empno= 7788 ;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20
--
解决方案 »
- 如何测量redo
- ora-04091 表 发生了变化 触发器 函数不能读
- 使用WCF访问oracle是不是每次都要建立OracleConnection
- 两台oracle服务器A、B都装有oracle数据库,如何A定期去获取B服务器上的一个表的数据?
- 在WIN2000下,获得ORACLE数据库的名称?
- 再pl/sql中,怎样让一个我自定义的函数返回我自定义的数据类型????
- 散分第二贴,25日就可以回家了,不知大家怎么样,祝大家过一个好年!
- 高分求解:Oracle数据库如何获得系统结构?
- 在oracle的ops结构中,如何指定连接的实例
- 求教,如何获取表分区high_value字段里面的时间呢?
- 求指点:VMware中xp3死活装不上Oracle 10g
- 写了个过程 老是提示错误
' select ename into v_name from' ||t_table||' where empno = 7788 '
要改成
' select ename from' ||t_table||' where empno = 7788 into v_name '不用动态SQL可以直接执行
select ename into v_name from t_table where empno = 7788 ;
2 v_sql varchar2(1000);
3 v_name varchar2(10);
4 begin
5 v_sql:=' select ename from ' ||t_table||' where empno = 7788 ';
6 execute immediate v_sql into v_name;
7 dbms_output.put_line('姓名'||v_name);
8 exception
9 when others then
10 null;
11 end ;
12 /
Procedure created
SQL> set serveroutput on
SQL> exec test_pro('emp');
姓名SCOTT
PL/SQL procedure successfully completed
SQL>
你的写法有问题 你用了异常 所以没报错SQL> create or replace procedure test_pro(t_table varchar2) is
2 v_sql varchar2(1000);
3 v_name varchar2(10);
4 begin
5 v_sql:=' select ename from' ||t_table||' where empno = 7788 ';
6 execute immediate v_sql into v_name;
dbms_output.put_line('姓名'||v_name);
7 exception
8 when others then
9 null;
11 end ;
12 /