当前位置: 代码迷 >> SQL >> 游标sql话语
  详细解决方案

游标sql话语

热度:35   发布时间:2016-05-05 12:16:15.0
游标sql语句
declarecursor emp_cursor (pno in number default 7369)is select * from emp where empno=pno;emp_row emp%rowtype;begin      open emp_cursor(7934);      fetch emp_cursor into emp_row;      dbms_output.put_line(emp_row.ename);      close emp_cursor;end;/declarecursor emp_cursor (pno in number default 7369)is select * from emp where empno=pno;begin  for emp_row in emp_cursor(7934) loop   dbms_output.put_line(emp_row.ename);  end loop;end;/declaretype emp_cname is ref cursor return emp%rowtype;ecname emp_cname;emp_row emp%rowtype;begin    dbms_output.put_line('开始');    open ecname for select * from emp;    loop     fetch ecname into emp_row;     exit when ecname%notfound;     dbms_output.put_line(emp_row.ename);    end loop;    close ecname;  dbms_output.put_line('结束');end;///向emp表中添加一条记录create procedure insert_emp asbegin  insert into emp(empno,ename,job,mgr,sal,comm,deptno)  values('7777','redarmy','teacher','7369',9000,1000,20);  commit;end insert_emp;set serveroutput on;begin   insert_emp;end;create or replace procedure insert_emp asbegin  insert into emp(empno,ename,job,mgr,sal,comm,deptno)  values('7777','redarmy','teacher','7369',9000,1000,20);  commit;end insert_emp;create or replace procedure insert_emp(  cempno in number,  cename in varchar2,  cjob in varchar2,  cmgr in number,  chiredate in date,  csal in number,  ccomm in number,  cdeptno in number) asbegin  insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)  values(cempno,cename,cjob,cmgr,chiredate,csal,ccomm,cdeptno);end insert_emp;set serveroutput on;begin   insert_emp(cempno=>7377,cename=>'mjjj',cjob=>'stu',cmgr=>7777,chiredate=>to_date('2011-01-01','YYYY-MM-dd'),csal=>5000,ccomm=>1000,cdeptno=>20);end;set serveroutput on;begin   insert_emp(3333,'mjjj','stu',7777,to_date('2011-01-01','YYYY-MM-dd'),5000,1000,20);end;set serveroutput on;begin   insert_emp(9999,cename=>'mjjj',cjob=>'stu',cmgr=>7777,chiredate=>to_date('2011-01-01','YYYY-MM-dd'),csal=>5000,ccomm=>1000,cdeptno=>20);end;declare begin    dbms_output.put_line('开始');       delete from emp where empno=7934;     dbms_output.put_line('结束');end;/

  相关解决方案