DECLARE
DAT_NOW_TIME DATE;
NUM_STATUS NUMBER;
NUM_MSG_NO NUMBER;
VR2_MSG_BODY VARCHAR2(200);
VR2_DBG_POS VARCHAR2(200);
VR2_MSG_SEVERITY VARCHAR2(200);
NUM_ELAPSE NUMBER;
REF_CURSOR GCMS_ADM.GCMS_TIMEZONE.ref_output;
--row_ref REF_CURSOR%rowtype
TZH_ID number;
TZH_START_DATE date;
TZH_END_DATE date;
VR2_DESCR varchar2(200);
TZD_ID number;
TZ_NAME varchar2(200);
OFFSET_HR number;
BEGIN
DAT_NOW_TIME := NULL;
--select sysdate into DAT_NOW_TIME from dual;
GCMS_TIMEZONE.TIMEZONE_SEARCH(
DAT_NOW_TIME => DAT_NOW_TIME,
NUM_STATUS => NUM_STATUS,
NUM_MSG_NO => NUM_MSG_NO,
VR2_MSG_BODY => VR2_MSG_BODY,
VR2_DBG_POS => VR2_DBG_POS,
VR2_MSG_SEVERITY => VR2_MSG_SEVERITY,
NUM_ELAPSE => NUM_ELAPSE,
REF_CURSOR => REF_CURSOR
);
DBMS_OUTPUT.PUT_LINE('NUM_STATUS = ' || NUM_STATUS);
DBMS_OUTPUT.PUT_LINE('NUM_MSG_NO = ' || NUM_MSG_NO);
DBMS_OUTPUT.PUT_LINE('VR2_MSG_BODY = ' || VR2_MSG_BODY);
DBMS_OUTPUT.PUT_LINE('VR2_DBG_POS = ' || VR2_DBG_POS);
DBMS_OUTPUT.PUT_LINE('VR2_MSG_SEVERITY = ' || VR2_MSG_SEVERITY);
DBMS_OUTPUT.PUT_LINE('NUM_ELAPSE = ' || NUM_ELAPSE);
-- Modify the code to output the variable
-- DBMS_OUTPUT.PUT_LINE('REF_CURSOR = ' || REF_CURSOR);
IF REF_CURSOR IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('REF_CURSOR-->not null');
--FOR REF_CURSOR;
--open REF_CURSOR;
LOOP
FETCH REF_CURSOR INTO TZH_ID,TZH_START_DATE,TZH_END_DATE,VR2_DESCR,TZD_ID,TZ_NAME,OFFSET_HR;
EXIT WHEN REF_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('TZ_NAME-->'|| TZ_NAME);
DBMS_OUTPUT.PUT_LINE('TZH_ID-->'|| TZH_ID);
DBMS_OUTPUT.PUT_LINE('TZD_ID-->'|| TZD_ID);
DBMS_OUTPUT.PUT_LINE('OFFSET_HR-->'|| OFFSET_HR);
END LOOP;
ELSE
DBMS_OUTPUT.PUT_LINE('REF_CURSOR-->null');
END IF;
END;
分享到:
相关推荐
### C#调用Oracle方法(包括调用存储过程) 在.NET框架中,使用C#语言进行数据库操作是一项常见的任务。本文将详细介绍如何使用C#语言连接Oracle数据库,并演示如何调用Oracle存储过程,特别是带有输出参数的情况。...
在 Delphi 中调用 Oracle 的存储过程返回数据集需要遵循一定的规则和格式,包括创建 Oracle 包和存储过程、使用 AdoConnection 和 AdoDataSet 组件连接到 Oracle 数据库、调用存储过程并返回数据集等步骤。
- `exesyscommand.jsp`: 这看起来是一个Java Servlet,可能是用于通过Web接口与数据库交互,调用存储过程执行批处理脚本。 - `PR_OTHER_SYSTEM_DATA_IMPORT.prc`: 这可能是一个存储过程,用于导入其他系统数据,它...
"Oracle触发器调用存储过程" Oracle触发器可以调用存储过程,以实现业务逻辑的自动化执行。然而,在触发器中调用存储过程时,需要注意事务的隔离性,以避免出现锁定和死锁的问题。Oracle自治事务(Autonomous ...
3. **编写数据集SQL脚本**:在数据集的SQL脚本中,填写调用存储过程的命令,例如`{call TEST(?,?)}`,这里的问号是占位符,代表实际传递的参数。 4. **设置数据集参数**:将报表参数与数据集参数关联,确保参数值...
在Visual Basic中,通过ADO (ActiveX Data Objects) 库可以实现对Oracle数据库的操作,包括调用存储过程。在给定的代码片段中,可以看到一个名为`AddTimePay`的子过程,它负责调用Oracle数据库中的存储过程`add_...
5. **执行存储过程**:使用Command对象的Execute方法调用存储过程。 ```vb cmd.Execute ``` 6. **获取输出参数和返回值**:对于输出参数和返回值,它们的值会在Execute方法执行后自动更新。可以通过索引或名称访问...
在Windows上,我们需要创建一个批处理文件(.bat文件)来执行调用Oracle存储过程的命令。这通常涉及到使用SQL*Plus或者ODBC连接到Oracle数据库,执行`EXEC`语句来运行存储过程。例如,一个简单的批处理文件可能包含...
标题中的“pb中执行oracle存储过程脚本”指的是在PowerBuilder(简称PB)环境中调用Oracle数据库的存储过程。PowerBuilder是一种可视化的开发工具,常用于构建数据驱动的应用程序。Oracle存储过程则是在Oracle数据库...
现在,我们可以使用转换后的数组调用存储过程。 ```csharp List<MyType> myList = new List(); // 填充你的数据 OracleArray oraArray = ConvertToListArray(myList); OracleCommand cmd = new OracleCommand...
"使用OLE-DB和ADO调用返回记录集的Oracle存储过程" 摘要:本文介绍了如何使用OLE DB和ADO调用返回记录集的Oracle存储过程。OLE DB是一个开放规范,提供了对不同类型数据的访问和操纵标准。ADO是OLE DB的消费者,...
在 Delphi 中,使用 AdoDataSet 组件来调用存储过程并处理返回的数据集。例如,要调用 `GetSubAndSum2` 过程,你可以在 Button1 的点击事件中编写以下代码: ```delphi procedure TForm1.Button1Click(Sender: T...
在Java编程中,Oracle存储过程的调用与标准输入(System.in)的交互可能会遇到一些问题,特别是当尝试使用System.in进行阻塞IO操作时。这个问题通常涉及到Java的多线程概念、I/O流的处理以及Oracle存储过程的执行...
### C#中调用Oracle存储过程 ...4. **参数验证**:在调用存储过程前,应对传入的参数进行必要的验证,防止注入攻击。 通过以上步骤和注意事项,可以有效地在C#中调用Oracle存储过程,实现复杂业务逻辑的高效处理。
【VB调用Oracle数据库存储过程】在软件开发中,VB(Visual Basic)与Oracle数据库的结合使用非常常见。Oracle数据库是一种高效的关系型数据库系统,它提供了丰富的存储过程功能,能够预编译和存储复杂的SQL语句及...
首先,确保你的开发环境中已经安装了Oracle客户端和Oracle Data Access Components (ODAC),这是C#连接Oracle数据库并调用存储过程的基础。ODAC提供了OracleClient命名空间,其中包含与Oracle交互所需的类和方法。 ...
- **使用Hibernate调用存储过程**: Hibernate提供了一种便捷的方式来调用存储过程,并处理结果集。 #### 九、在存储过程中做简单动态查询 - **本地动态SQL**: 直接在存储过程中构建动态SQL语句。 - **使用DBMS_SQL...
在调用存储过程时,可能需要传递参数。这里有一个名为`pkg_test.get`的存储过程,它接受一个输入参数`p_id`和一个输出参数`p_rc`(游标)。在VBA中,我们需要创建`ADODB.Parameter`对象来定义这些参数: ```vba ...