• Oracle数据库编程


    PL/SQL:程序语言:SQL、程序语言的三大结构:循环、判断、顺序

    语言块:Block

    存储过程:Procedure

    函数:Function

    执行任务:Jobs

    触发器:Trigger

     

    块:

    DECLARE
    --定义变量
    v_a VARCHAR2(10) := 'AAA';
    BEGIN
      NULL;
      DBMS_OUTPUT.PUT_LINE(v_a);
    END;

    存储过程:

    CREATE OR REPLACE PROCEDURE t1(v_i VARCHAR2) IS
    --DECLARE
    --定义变量
    --v_a VARCHAR2(10) := 'AAA';
    BEGIN
      NULL;
      DBMS_OUTPUT.PUT_LINE(v_i);
    END t1;
    
    --带游标的存储过程
    CREATE OR REPLACE PROCEDURE p_t2 IS
      CURSOR c_cur IS(
        SELECT *
          FROM TEST_TEM_COURSE_DIS t
        --GROUP BY t.inpatient_no
        );
    BEGIN
      FOR v_content IN c_cur LOOP
        DBMS_OUTPUT.put_line(v_content.patient_id);
      END LOOP;
    END p_t2;

    存储过程应用实例

    --单行多病程 转 多行单病程
    create or replace procedure p_course_dis is
      v_col_record_time    varchar2(4000) := '';--列名
      v_col_record_content varchar2(4000) := '';
      v_col_record_doctor  varchar2(4000) := '';
      v_record_time        varchar2(4000) := '';--列值
      v_record_content     varchar2(4000) := '';
      v_reccord_doctor     varchar2(4000) := '';
      cursor v_rows is select reference_id from MULTICOL_COURSE_DIS;--主键游标
      v_sql VARCHAR2(4000) := '';--sql语句
    begin
      for v_row in v_rows loop--遍历表
        for v_i in 1 .. 3 loop--循环列
          v_col_record_time    := 'record_time' || v_i;--列名赋值
          v_col_record_content := 'record_content' || v_i;
          v_col_record_doctor  := 'record_doctor' || v_i;
          v_sql := 'select ' || v_col_record_time || ',' 
                             || v_col_record_content || ',' 
                             || v_col_record_doctor ||
                  ' from MULTICOL_COURSE_DIS
                    where reference_id = ''' || v_row.reference_id || '''';
          EXECUTE IMMEDIATE v_sql into v_record_time, 
                                       v_record_content, 
                                       v_reccord_doctor;--执行sql
          DBMS_OUTPUT.put_line(v_record_time || ' ' 
                            || v_record_content || ' ' 
                            || v_reccord_doctor);--输出样例
        end loop;
      end loop;
    end p_course_dis;
  • 相关阅读:
    Ghost Button制作教程及设计趋势分析
    onhashchange事件--司徒正美
    window.location.hash属性介绍
    优质UI的7条准则(一)
    当在浏览器地址栏输入一个网址的时候,究竟发生了什么?
    全球最快的JS模板引擎
    眨眼登录表单
    DIV+CSS规范命名
    es6--export,import
    es6--class
  • 原文地址:https://www.cnblogs.com/ohmyuan/p/10784907.html
Copyright © 2020-2023  润新知