`

动态SQL中using的用法

阅读更多
http://blog.chinaunix.net/u/21806/showart_484745.html
动态SQL中using的用法
关键字:oracle using  返回结果集



CREATE OR REPLACE PROCEDURE tP_JCXX_SECOND(CUR_RESULT OUT sys_refcursor,
                        TJFS IN VARCHAR2,--统计方式

                        NSPQ IN VARCHAR2,--片区

                        NSRZT IN VARCHAR2,--纳税人状态

                        XXHD IN VARCHAR2,--信息核定

                        NSRDZDAH IN VARCHAR2,--计算机代码

                        NSRMC IN VARCHAR2,--纳税人名称

                        SGY IN VARCHAR2--税管员

                        ) IS
    SQL_STATEMENT VARCHAR2(2000);
    SQL_STATEMENT1 VARCHAR2(2000);
    SQL_STATEMENT2 VARCHAR2(2000);
    BEGIN
        
   
     SQL_STATEMENT1:=
    'SELECT A.NSRDZDAH JSJDM,--计算机代码
     A.NSRMC NSRMC,--纳税人名称
     E.ZCZB ZCZJ,--注册资金
     F.HYMX_MC HY,--行业
     G.DJZCLX_MC DJZCLX,--登记注册类型
     A.SCJYDZ JYDZ,--经营地址
     E.SCJYD_DHHM JYDZDH,--经营地址电话
     H.NSRZT_MC NSRZT,--纳税人状态
     A.GDGGBZ GGH,--是否是共管户
     I.SWJG_MC SWJG,--税务机关
     J.CZRY_MC SGY--税管员
     FROM GY_NSRXX A,HD_NSR_HDXX B,GL_PQ_NSR C,DM_HDXL D,GY_NSRXX_KZ E,
     DM_HYMX F,DM_DJZCLX G,DM_NSRZT H,DM_SWJG I,DM_CZRY J
     WHERE A.NSRDZDAH=B.NSRDZDAH
     AND A.NSRDZDAH=C.NSRDZDAH
     AND B.HDXL_DM=D.HDXL_DM
     AND A.NSRDZDAH=B.NSRDZDAH
     AND A.HYMX_DM=F.HYMX_DM
     AND A.DJZCLX_DM=G.DJZCLX_DM
     AND A.NSRZT_DM=H.NSRZT_DM
     AND A.SWJG_DM=I.SWJG_DM
     AND A.ZGSWRY_DM=J.CZRY_DM
     AND C.PQ_DM IN (NVL(:NSPQ,C.PQ_DM))
     AND B.HDXL_DM IN (NVL(:XXHD,B.HDXL_DM))
     AND A.NSRZT_DM IN (NVL(:NSRZT,A.NSRZT_DM))
     AND A.NSRDZDAH IN (NVL(:NSRDZDAH,A.NSRDZDAH))
     AND A.ZGSWRY_DM IN (NVL(:SGY,A.ZGSWRY_DM))';
     SQL_STATEMENT2:='AND B.HDXL_DM LIKE SUBSTR(:TJFS,2)'||'%';
     IF(SUBSTR(TJFS,1,2)='03') THEN
     SQL_STATEMENT:=SQL_STATEMENT1||SQL_STATEMENT2;
    
     OPEN CUR_RESULT FOR
     SQL_STATEMENT using NSPQ,XXHD,NSRZT,NSRDZDAH,SGY,TJFS;
    
     ELSE
     SQL_STATEMENT:=SQL_STATEMENT1;
     OPEN CUR_RESULT FOR
     SQL_STATEMENT using in NSPQ, in XXHD, in NSRZT,in NSRDZDAH,in SGY;
    
     END IF;
     --DBMS_OUTPUT.Put(SQL_STATEMENT);

    END tP_JCXX_SECOND;
分享到:
评论

相关推荐

    Oracle中Using用法

    在 Oracle 中,使用 Using 语句可以实现动态 SQL 的绑定变量,提高 SQL 语句的灵活性和安全性。本文将对 Oracle 中 Using 用法进行详细的介绍,并提供实际开发的示例和技巧。 一、静态 SQL 和动态 SQL 在 Oracle ...

    PLSQL开发中动态SQL的使用方法.doc

    PLSQL 开发中动态 SQL 的使用方法 在 PL/SQL 开发过程中,使用 SQL,PL/SQL 可以实现大部分的需求,但是在某些特殊的情况下,在 PL/SQL 中使用标准的 SQL 语句或 DML 语句不能实现自己的需求,比如需要动态建表或...

    在PowerBuilder中使用动态SQL.pdf

    PowerBuilder 中的动态 SQL 本文详细地介绍了 PowerBuilder 中实现动态 SQL 的四种格式及其它们的使用。...通过了解动态 SQL 的基础知识和使用方法,开发者可以更好地使用 PowerBuilder 来开发高效、灵活的应用程序。

    SQLTracker监视使用Oracle数据库的应用程序

    SQLTracker是一款专为监视使用Oracle数据库的应用程序设计的工具,尤其在Windows 7和Windows 10 64位操作系统上表现出色。该工具的主要目标是帮助系统管理员、DBA(数据库管理员)以及开发人员更好地理解和优化应用...

    PowerBuilder下动态SQL语句的使用.pdf

    本文主要介绍了PowerBuilder下动态SQL语句的使用方法和特点,以及其在数据库前端开发中的应用。 一、动态SQL语句特点 在PowerBuilder下,动态SQL语句有明显的特点和优势。与嵌入式SQL语句相比,动态SQL语句可以...

    oracle关于动态SQL的使用

    本篇文章主要介绍了如何在PL/SQL中使用动态SQL,包括两种主要方法:本地动态SQL和DBMS_SQL包。 首先,让我们了解一下静态SQL与动态SQL的区别。静态SQL是指在编写PL/SQL块时已经明确的SQL语句,它们在编译时就已经...

    Oracle动态SQL之本地动态SQL的使用.pdf

    动态SQL的使用场景广泛,它允许开发者在程序中动态地构建SQL语句,而不是在编译时静态定义。这种方法特别适用于那些在编译时无法确定要执行的SQL语句的情况,比如在程序中根据用户输入或其它运行时信息来决定具体...

    基于Oracle高性能动态SQL程序开发

    - **动态SQL**:与静态SQL不同,动态SQL允许在程序运行过程中动态构建和执行SQL语句。这种类型的SQL通常用于处理那些在编译阶段未知或不确定的情况,如用户输入的查询条件等。动态SQL的灵活性非常高,但也存在一定的...

    oracle-dynamic-SQL.rar_oracle_sql中dynamic用法

    在Oracle数据库环境中,动态SQL(Dynamic SQL)是一种强大的技术,允许在运行时构建和执行SQL语句。这种技术尤其适用于那些在程序执行前无法预知具体SQL结构的情况,例如,当查询条件根据用户输入或者程序运行状态...

    PB中动态SQL语句研究与应用.pdf

    在PB(PowerBuilder)中,动态SQL语句是处理数据库交互操作中非常...通过阅读本文,开发者可以更好地掌握PB中动态SQL语句的使用,优化他们的应用程序,并解决那些通过标准数据窗口控件难以处理的复杂数据库交互问题。

    SQL中in参数化的用法

    SQL 中 IN 参数化的用法详解 在 SQL 中,对于 IN 操作符的使用是非常常见的,特别是在 WHERE 子句中规定多个值时。如:select * from A where ID in (1,2,3,4)。但是在实际开发中,我们不可避免地需要处理大量的...

    oracle执行动态sql

    在这个例子中,我们使用了 `USING` 子句来传递动态值到 SQL 语句中。 3. **使用 INTO 子句** ```plsql DECLARE l_cnt NUMBER; BEGIN EXECUTE IMMEDIATE 'SELECT COUNT(1) FROM emp' INTO l_cnt; DBMS_...

    动态PL/SQL用法例子

    这里定义了一个变量`id`并赋值为1,然后通过`USING`子句将该变量传递给动态执行的SQL语句中的占位符`(:1)`。需要注意的是,当使用`USING`子句时,传递的参数数量必须与SQL语句中的占位符数量一致。 ### 查询数据:...

    在PowerBuilder中使用动态SQL语句访问数据库.pdf

    文章接着介绍了PowerBuilder中动态SQL语句的三种格式及其具体使用方法: 1. 第一种格式适用于没有输入参数且不返回结果集的SQL语句。其语法格式为“EXECUTE IMMEDIATE SQLStatement [USING TransactionObject]”,...

    Proc SQL by Example, Using SQL within SAS

    综述了三种主要的集合操作符——UNION、INTERSECT和EXCEPT的特性和使用方法,并举例说明了它们各自的应用场景。 #### 6.6 UNION 深入探讨了UNION操作符的功能和使用技巧,包括如何使用UNION来合并多个查询结果集。...

    oracle动态sql之EXECUTE IMMEDIATE.docx

    Oracle 动态 SQL 之 EXECUTE IMMEDIATE Oracle 动态 SQL 中的 EXECUTE IMMEDIATE 语句是数据库中执行...这些示例展示了 EXECUTE IMMEDIATE 语句的使用方法和灵活性,使得开发者可以根据需要灵活地构建动态 SQL 语句。

    ORACLE数据库使用动态SQL的方法.pdf

    在Oracle数据库中,有四种使用动态SQL的方法: 1. 使用`EXECUTE IMMEDIATE`命令,语法如下: ``` EXECUTE IMMEDIATE 'SQL命令' [INTO 变量列表] [USING 参数列表]; ``` 这种方式可以直接执行SQL命令,如果需要...

    浅析PowerBuilder下动态SQL语句.pdf

    下面我们对各种格式的具体使用方法分别加以说明: (一)第一种格式 当执行没有输入参数并且没有返回结果集的 SQL 语句时,可以使用这种格式。这种格式使用比较简单,其实现的操作也比较少。 语法:EXECUTE ...

    PB中动态SQL技术的应用.pdf

    PB 中动态 SQL 技术的应用 本文主要介绍了在 PowerBuilder 开发工具中四种格式的动态 SQL 语句,以及如何使用动态数据窗口的相关技术。动态 SQL 技术是指在程序运行时构成 SQL 语句的技术,相比静态查询技术,动态...

Global site tag (gtag.js) - Google Analytics