zoukankan      html  css  js  c++  java
  • PLSQL操作DDL和行变量的学习

    行变量的学习

      1:说明

        行变量可以存储表的一条记录。

      2:格式

        变量名  表名%rowtype

      3:访问行变量的字段

        变量名.字段名

      4:练习

        -->使用行变量输出显示10号部门的员工编号,姓名,职位

        -->写法1:

         declare

          cursor c is select * from emp where deptno=10;

          row_emp emp%rowtype;  --行变量可以存储表的一条记录

        begin

          open c;

          fetch c into row_emp;

          while c%found

            loop

              dbms_output.put_line(row_emp.empno||' '||row_emp.ename||' '||row_emp.job);

              fecth c into row_emp;

            end loop;

           close c;

         end;

          /

        -->写法2:

          declare 

            cursor c is select * from emp where deptno=10;

            row_emp emp%rowtype;

          begin

            open c;

            fetch c into row_emp;

            loop

              dbms_output.put_line(row_emp.empno||' '||row_emp.ename||' '||row_emp.job);

              fetch c into row_emp;

              exit when c%not found;

            end loop;

            close c;

          end;

          /

        -->写法3:

          declare

            cursor c is select * from emp where deptno=10;

            row_emp emp%rowtype;  --可省略

          begin

            for row_emp in c

              loop

                dbms_output.put_line(row_emp.empno||' '||row_emp.ename||' '||row_emp.job);

              end loop;

          end;

          /

    PLSQL操作DDL语句

            

      1:说明

        需要使用execute immediate 'DDL';

      2:练习

        -->创建一张表 temp 字段id number,name varchar2(20);

        begin

          execute immediate

            'create table temp(

               id number(4),

               name varchar2(20)

            )';

        end;

        /

      3:在执行DDL语句时可以进行插入操作:如insert数据,但是,不能直接写insert into ,因为DDL仅仅处于编译状态,此时数据库中还没有该表,所以直接insert into 会报错,编译不通过,insert也应该写在execute immediate中。

      4:练习

        -->创建表temp_1 ,id,name,同时插入数据1,张三,2,李四。

        begin

          execute immediate

          'create table temp_1(

            id number(3),

            name varchar2(20)

          )';

          execute immediate 'insert into temp_1 values(1,'张三')';

          execute immediate 'insert into temp_1 values(2,'李四')';

        end;

        /

          

  • 相关阅读:
    L161
    L160
    L159
    PyQt编程实战:画出QScrollArea的scrollAreaWidgetContents内容部署层的范围矩形
    PyQt(Python+Qt)学习随笔:QScrollArea滚动区域layout布局的作用及设置方法
    PyQt(Python+Qt)学习随笔:QScrollArea滚动区域的scrollAreaWidgetContents、widget及setWidget等相关概念解释
    PyQt(Python+Qt)学习随笔:怎么在QScrollArea滚动区域中展示子部件的超长内容?
    PyQt(Python+Qt)学习随笔:QScrollArea的widgetResizable属性
    PyQt(Python+Qt)学习随笔:QScrollArea的alignment属性不起作用的原因
    第二十四章、containers容器类部件QScrollArea滚动区域详解
  • 原文地址:https://www.cnblogs.com/lyr999736/p/9051035.html
Copyright © 2011-2022 走看看