zoukankan      html  css  js  c++  java
  • 存储过程中拼接sql的示例

    create or replace package body CRF_CMS_DOCTOR_PKG is

    --根据医院查询医生
    PROCEDURE P_HOSPITALBYDOCTOR_LIST
    (
    v_HOSPITAL_ID IN NUMERIC,
    v_DEPT_ID IN NUMERIC,
    v_JOBTITLE_ID IN NUMERIC,
    v_USER_NAME IN VARCHAR2,
    v_MOBILE IN VARCHAR2,
    v_DIMDOCTOR_LIST OUT DOCTDRSOR
    )
    IS
    v_SQL VARCHAR2(256);
    v_Where VARCHAR2(256);
    v_StrEnd VARCHAR2(16);
    v_Length NUMBER(8);
    BEGIN
    --v_SQL:='SELECT USER_NAME,MOBILE,SEX,HOSPITAL_ID,DEPT_ID,JOBTITLE_ID,CREATE_TIME,UPDATE_USER_ID FROM T_DOCTOR_INFO WHERE HOSPITAL_ID like ''%';
    v_SQL:='SELECT USER_NAME,MOBILE,SEX,HOSPITAL_ID,DEPT_ID,JOBTITLE_ID,CREATE_TIME,INTRODUCE FROM T_DOCTOR_INFO ';
    v_Where:='WHERE ';
    IF v_HOSPITAL_ID>0 THEN
    v_Where:=v_Where||'HOSPITAL_ID='||TO_CHAR(v_HOSPITAL_ID);
    v_Where:=v_Where||' AND';
    END IF;
    IF v_DEPT_ID>0 THEN
    v_Where:=v_Where||' DEPT_ID='||TO_CHAR(v_DEPT_ID);
    v_Where:=v_Where||' AND';
    END IF;
    IF v_JOBTITLE_ID>0 THEN
    v_Where:=v_Where||' JOBTITLE_ID='||TO_CHAR(v_JOBTITLE_ID);
    v_Where:=v_Where||' AND';
    END IF;

    IF v_MOBILE<>'00000000000' THEN
    v_Where:=v_Where||' MOBILE LIKE ';
    v_Where:=v_Where||'''%';
    v_Where:=v_Where||v_MOBILE;
    v_Where:=v_Where||'%''';
    v_Where:=v_Where||' AND';
    END IF;
    IF v_USER_NAME<>'aaaaaaaaaa' THEN
    v_Where:=v_Where||' USER_NAME LIKE ';
    v_Where:=v_Where||'''%';
    v_Where:=v_Where||v_USER_NAME;
    v_Where:=v_Where||'%''';
    END IF;

    v_Length:=length(v_Where);
    v_StrEnd:=substr(v_Where,v_Length-2);
    IF v_StrEnd='AND' THEN
    v_Where:=substr(v_Where,0,v_Length-4);
    END IF;
    v_Length:=length(v_Where);
    v_SQL:=v_SQL||v_Where;

    OPEN v_DIMDOCTOR_LIST FOR v_SQL;
    --select * from T_DOCTOR_INFO where HOSPITAL_ID like '%%';

    end P_HOSPITALBYDOCTOR_LIST;

    end CRF_CMS_DOCTOR_PKG;

    注意:要想在存储过程中判断传过来的字符串是否为空,可以写成

    IF v_MOBILE not null THEN .....

  • 相关阅读:
    [转]来扯点ionic3[2] 页面一线牵 珍惜这段缘
    [转]ionic工作原理
    [转]禁止浏览器自动保存密码弹框
    [转]git提交代码时遇到代码库有更新以及本地有更新的解决方法
    [转]Angular 4 *ngIf/Else
    [转]Angular4 引用 material dialog时自定义对话框/deep/.mat-dialog-container
    ES之五:ElasticSearch聚合
    Logstash之四:配置说明
    Logstash之三:命令行中常用的命令
    Logstash之二:原理
  • 原文地址:https://www.cnblogs.com/zhaoblog/p/5952486.html
Copyright © 2011-2022 走看看