`
liuwang8888
  • 浏览: 18059 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle游标类型作为传入传出参数

 
阅读更多
--游标类型传入参数 
DECLARE 
  /*CURSOR cur_ttt IS
  SELECT 1 a FROM dual;*/
 
  TYPE typ_cur IS REF CURSOR; 
  val_cur typ_cur;
 
  PROCEDURE temp_sp1(x_cur OUT typ_cur) IS
  BEGIN
      OPEN x_cur FOR SELECT 1 a FROM dual UNION ALL SELECT 2 FROM dual;
  END;
 
  PROCEDURE temp_sp2(p_cur IN typ_cur) IS
    i NUMBER;
  BEGIN
    LOOP
      FETCH p_cur INTO i;
      EXIT WHEN p_cur%NOTFOUND;
      dbms_output.put_line(i);
    END LOOP;
    CLOSE p_cur;
  END;
BEGIN
  temp_sp1(val_cur);
  temp_sp2(val_cur);
 
  OPEN val_cur FOR SELECT 3 a FROM dual UNION ALL SELECT 4 FROM dual;
  temp_sp2(val_cur);
END;


SELECT t.id,
       b.rn,
       decode(b.rn,
              1,
              t.scat_int,
              2,
              t.incl_int,
              3,
              t.other_int,
              4,
              t.rc_int) AS INT,
       t.seq_no
  FROM test_3_6 t, (SELECT rownum rn FROM dual CONNECT BY rownum <= 4) b
WHERE t.id = 1
   AND decode(b.rn,
              1,
              t.scat_int,
              2,
              t.incl_int,
              3,
              t.other_int,
              4,
              t.rc_int) IS NOT NULL
分享到:
评论

相关推荐

    ORACLE存储过程最全教程

    四、存储过程的参数类型 1. IN参数:传递数据到过程,过程内部不能改变其值。 2. OUT参数:过程结束后返回数据,调用时需提供变量接收。 3. IN OUT参数:既能传入也能传出,过程内可以修改其值。 五、存储过程的...

    oracle函数大全及存储过程语法.rar

    3. 参数传递:包括IN参数(只传入不传出)、OUT参数(只传出不传入)和IN OUT参数(既传入又传出)。 4. 存储过程中的控制结构:如IF-THEN-ELSIF-ELSE、CASE、LOOP等,可以实现复杂的业务逻辑。 5. 异常处理:使用...

    oracle存储过程使用文档

    - 变量类型可以是Oracle支持的任何类型,包括`%TYPE`和`%ROWTYPE`。 - **例外处理**: - 与PL/SQL错误处理相同,可以根据不同的异常执行特定的操作。 #### 三、示例:创建一个为指定雇员增加薪水的存储过程 ```...

    oracle存储过程语法

    其中,`IN` 表示传入参数,`OUT` 表示传出参数。 ##### 2. SELECT INTO 语句 `SELECT INTO` 语句用于将 `SELECT` 查询的结果存储到变量中。需要注意的是,如果查询结果为空,则会抛出 `NO_DATA_FOUND` 异常。 ```...

    oracle村粗过程

    `IN`表示传入参数,`OUT`表示传出参数。`IS`关键字之后定义了局部变量,用于存储中间结果。 #### 三、SELECT INTO 语句 `SELECT INTO`语句用于将查询结果赋值给变量,如果查询结果有多行,则会抛出`TOO_MANY_ROWS`...

    oracle存储过程学习经典入门.rar_oracle

    Oracle支持多种参数类型,包括IN(只传入),OUT(传出),IN OUT(既传入又传出)。 4. **PL/SQL块**: PL/SQL块由三部分组成:声明部分(DECLARE)、执行部分(BEGIN...END)和异常处理部分(EXCEPTION)。声明...

    oracle存储过程资料

    4. **参数类型** 参数可以是IN(输入)、OUT(输出)或IN OUT(输入输出)类型。IN参数用于传递数据到过程,OUT参数用于从过程传出数据,而IN OUT参数则同时支持传入和传出。 5. **异常处理** PL/SQL提供了一个...

    oracle 存储过程

    输入参数用于传递数据到过程,输出参数用于从过程返回数据,双向参数既可以传入也可以传出。 3. **函数与存储过程的区别**: 函数与存储过程相似,但函数必须返回一个值,而存储过程可能不返回任何值。函数可以在...

    oracle函数大全及存储过程语法

    - IN OUT参数:既能传入也能传出。 4. **返回值**: - 使用`RETURN`语句返回一个值,或者通过OUT参数传出。 5. **调用存储过程**: - 在SQL查询中直接调用,如`SELECT package_name.procedure_name INTO ...

    oracle存储过程

    IN参数传递数据到过程,OUT参数从过程传出数据,IN OUT参数既传入也传出数据。 4. **局部变量**:在存储过程内部,可以声明并使用局部变量来暂存数据,这些变量只在该过程中有效。 5. **异常处理**:Oracle存储...

    (完整word版)Oracle存储过程基本语法.doc

    参数类型可以是Oracle支持的任何数据类型,如VARCHAR2、NUMBER等。 3. **变量声明**: 在`AS`关键字后的PL/SQL块中,可以声明变量,如: ```sql variable1 datatype1; variable2 datatype2; ``` 这里的`...

    Oracle-SQL基础到存储过程下载(第四阶段)

    073.sql全套_程序设计_传入传出参数.mp4 074.sql全套_程序设计_日志.mp4 075.sql全套_程序设计_异常 .mp4 076.sql全套_程序设计_自定义函数.mp4 077.sql全套_程序设计_创建包.mp4 078.sql全套_程序设计_工作中的存储...

    Oracle存储过程及调用

    通过定义不同的参数类型,存储过程能够灵活地接收输入数据,处理后返回结果。在实际应用中,存储过程广泛应用于数据处理、业务逻辑实现以及与其他系统交互等场景。了解并熟练掌握存储过程的创建、调用以及参数使用,...

    oracle 存储过程(6)

    输入参数用于传递数据到过程,输出参数用于从过程返回数据,双向参数既可传入也可传出。例如: ```sql CREATE PROCEDURE proc_example (in_param IN number, out_param OUT number, in_out_param IN OUT number) AS...

    oracle-存储过程1.ppt

    以及`IN OUT`参数,既可传入又可传出数据。 5. **处理错误信息** Oracle提供异常处理机制,使用`BEGIN...EXCEPTION`块来捕获和处理错误,例如: ``` DECLARE v_error EXCEPTION; BEGIN -- 代码段 EXCEPTION ...

    oracle存储过程语法[参照].pdf

    2. **参数类型**: - `IN`参数用于传递数据到存储过程,只能读取不能修改。 - `OUT`参数用于传出数据,调用时无初始值,存储过程结束后返回结果。 - `IN OUT`参数既能传入也能传出数据。 3. **变量声明**: 在`...

    全面解析Oracle Procedure 基本语法

    其中,`IN` 参数用于传递输入值,`OUT` 或 `IN OUT` 参数用于传出或传入传出值。 2. **SELECT INTO 语句** `SELECT INTO` 用于将 SQL 查询的结果存入变量。如果查询没有返回任何记录,将会抛出 `NO_DATA_FOUND` ...

Global site tag (gtag.js) - Google Analytics