• oracle pl/sql之sql语法


    pl/sql块由三个部分构成:定义部分、执行部分、例外处理部分.如下所示:

    declear

    /*定义部分-----定义常量、变量、游标、例外、复杂数据类型*/

    begin

    /*执行部分-----要执行的pl/sql语句和sql语句*/

    exception

    /*例外处理部分----处理运行的各种错误*/

    end;

    1,

    DECLARE
      salk NUMBER;
    BEGIN
      SELECT sal INTO salk FROM emp WHERE ename='KING';
      dbms_output.put_line(salk);
      END;

    2,

    DECLARE
     TYPE my_record IS RECORD(
         record_empno emp.empno%TYPE,
         record_ename emp.ename%TYPE,
         record_job emp.job%TYPE,
         record_mgr emp.mgr%TYPE,
         record_hiredate emp.hiredate%TYPE,
         record_sal emp.sal%TYPE,
         record_comm emp.comm%TYPE,
         record_deptno emp.deptno%TYPE
     );
     i_record my_record;
     
     BEGIN
       SELECT * INTO i_record FROM emp WHERE emp.empno=7369;
       dbms_output.put_line(i_record.record_ename);
       END;

    3,

    DECLARE
    deptnono emp.empno%TYPE:=&NO;

    BEGIN
       dbms_output.put_line(deptnono);
      END;

    4,建立一个简单的procedure

    CREATE PROCEDURE pro2 IS
      BEGIN
        INSERT INTO emp(empno,ename) VALUES(777,'zt');
        END;

    注意:需要在pl/sql执行exec pro2,这样procedure才会提交

    跟java程序连接

    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;


    public class proinjava {
        public static void main(String args[]){
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection co=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger");
                CallableStatement ct=co.prepareCall("{call pro2}");
                ct.execute();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    注意:在myeclipse中执行,他需要等待pl/sql的事物提交,所以需在pl/sql中的command window中commit一下,程序才会执行

     5,精进版

    ①请考虑编写一个过程,可以输入雇员名,新工资 可修改雇员的工资

    ②如何调用过程有两种方法:

      exec .. call

    pl/sql程序:

    java程序:

    累了,想想,生活中充满诗和远方,亦不乏仓央嘉措的妙音天女。
  • 相关阅读:
    CSS3 object-fit 图像裁剪
    jQuery.extend 使用函数
    ios 不支持iframe 解决方案
    详解HTML5中rel属性的prefetch预加载功能使用
    web页面加载、解析、渲染过程
    TCP的三次握手(建立连接)与 四次挥手(关闭连接)
    html---规范、细节积累-01
    pio设置单元格式
    让一个数字显示指定位数
    linux下获取微秒级精度的时间
  • 原文地址:https://www.cnblogs.com/ztyy04126/p/4891494.html
Copyright © 2020-2023  润新知