sql>create or replace procedure testpro(vename varchar2,vdname out varchar2,vjob out varchar2) is
begin
select dname into vdname from dept where deptno=(select deptno from emp where ename=vename);
select job into vjob from emp where ename=vename;
end;这样直接复制执行,没有反应,应该怎么写,才能创建这个存储过程?之前一直在plsql工具中编译创建的,到命令提示符下面就不知道怎么搞了,求高手帮忙啊。
2 begin
3 select dname into vdname from dept where deptno=(select deptno from emp where ename=vename);
4 select job into vjob from emp where ename=vename;
5 end;
6 /
Procedure created
SQL> var dname varchar2;
SQL> var job varchar2;
SQL> exec('SMITH',dname,job);
exec('SMITH',dname,job)
ORA-00900: 无效 SQL 语句
SQL> exec testpro('SMITH',:dname,:job);
PL/SQL procedure successfully completed
dname
---------
RESEARCH
job
---------
CLERK
SQL>
SQL> create or replace procedure proc
2 is
3 begin
4 dbms_output.put_line('Procedure');
5 end;
6 /Procedure created.
begin
select dname into vdname from dept where deptno=(select deptno from emp where ename=vename);
select job into vjob from emp where ename=vename;
end;
/ 加个执行/ 回车
就看你的赋值唯一不 也就是取出的记录是只有一条
create or replace procedure testpro(vename varchar2,vdname out varchar2,vjob out varchar2)
is
begin
select a.dname,b.job into vdname,vjob from dept a,emp b where a.deptno=b.deptno and b.ename=vename; end;