文章转自:
http://www.oraclefans.cn/forum/showtopic.jsp?rootid=410
在PRO*C中调用存储过程和函数
在PRO*C中可以在一个嵌入式PL/SQL块中调用一个存储过程或函数。以下通过例子来说明调用的方法。比如说目前有以下几个存储过程和函数:
l procedure1() :没有参数的存储过程
l procedure2 (param1 number, param2 varchar2):有2个参数的存储过程
l function1() return number :没有参数的函数
l function2(param1 number) return number:有一个参数的函数
调用PROCEDURE1的嵌入式PL/SQL语法为:
EXEC SQL EXECUTE
BEGIN
procedure1;
END;
END-EXEC;
调用PROCEDURE2的嵌入式PL/SQL语法为:
int hostvar1;
char hostvar2(20);
EXEC SQL EXECUTE
BEGIN
/* hostvar1和hostvar2是两个在C语言中定义的宿主变量 */
procedure2(:hostvar1, :hostvar2);
END;
END-EXEC;
调用FUNCTION1的语法是:
int hostvar;
EXEC SQL EXECUTE
BEGIN
:hostvar:= function1;
END;
END-EXEC;
调用FUNCTION2的语法:
int hostvar,returnvar;
EXEC SQL EXECUTE
BEGIN
:returnvar := function2(:hostvar);
END;
END-EXEC;
分享到:
相关推荐
Pro*C是Oracle公司提供的一种预编译器,它允许C或C++程序直接调用PL/SQL代码,极大地简化了数据库操作。本篇文章将详细探讨Linux下使用C/C++和Pro*C连接Oracle数据库的技术细节。 1. **Pro*C介绍**: Pro*C是...
Oracle Pro*C,全称为“Procedure C”,是Oracle公司提供的一种预编译器,它允许程序员在C或C++程序中嵌入SQL语句,从而结合了结构化编程语言的强大功能和数据库操作的高效性。本教程将深入探讨Pro*C的基本概念、...
1. **Oracle调用接口(OCI)**:Oracle Call Interface (OCI) 是Oracle提供的一种C语言编程接口,允许开发者直接在C或C++程序中访问和操纵Oracle数据库。通过OCI,程序员可以实现数据的查询、插入、更新和删除,以及...
- 连接管理:掌握连接Oracle数据库的方法,如使用 DriverManager 和 Connection 在Java中建立连接,或在C/C++中使用Pro*C/C++的预编译器特性。 5. 实践和代码示例 通过实践是掌握Oracle技术的最佳方式。你可以尝试...
实验报告主要涉及了在ARM架构下,如何使用汇编语言编写程序并调用C语言函数进行运算,以及在Embest IDE Pro 2004集成开发环境中进行程序的编译、调试和下载。实验的目标是理解处理器启动过程,学会使用Embest IDE...
C) **减少网络流量**:当多个SQL语句组合为一个存储过程时,客户端只需发送存储过程调用,而非所有的SQL语句,降低了网络传输的数据量,减轻了网络负载。 D) **安全性**:通过权限管理,系统管理员可以限制对存储...
程序文件通常以`.pro`扩展名结尾,并且可以使用`PROCEDURE`关键字来定义。 **调用程序文件:** ```idl IDL>.COMPILE filename IDL>filename ``` 这里`filename`是程序文件的名称。 ##### 2.5 函数文件 函数文件...
create procedure add_pro(a int, b int, out sum int) begin set sum = a * b; end; // delimiter ; ``` 2. **使用JDBC调用存储过程** 在Java中,我们需要使用`CallableStatement`接口来调用存储过程。首先...
存储过程(Procedure)是预先编写的、存储在数据库中的SQL语句集合,用户可以通过调用存储过程的名字并提供必要的参数来执行它。存储过程可以包含复杂的逻辑控制语句和数据操纵语句,支持输入参数、输出参数、返回...
CREATE OR REPLACE PROCEDURE sp_pro2 IS BEGIN DELETE FROM mytest WHERE name = 'zhangsan'; END; / ``` #### 四、PL/SQL 编写规范 - **注释**: - 单行注释:使用 `--`。 - 多行注释:使用 `/* ... */`。 - *...
文章目录1. 存储过程和函数在实际项目中的使用2. 存储过程与函数的比较2.1. 共同点2.2. 不同点3. 变量的定义和使用3.1.... 调用存储过程 call4.4. 查看存储过程4.4.1. 查看存储过程的状态4.4.2. 查看存储过程的
**解释**:调用`pro_1`存储过程,并遍历更新后的`s`表,打印每个供应商的编号(`sno`)和供应零件总数(`sqty`)。 ##### 2. 定义、调用参数存储过程:查询返回指定供应商的供应零件总数量 ```sql CREATE OR REPLACE ...
4.1.2 Pro*c预编译环境 37 4.2 存储过程调试方法 38 4.2.1 SQL*PLUS环境中显示错误 38 4.2.2 插入测试表调试存储过程 38 4.2.3 DBMS_OUTPUT系统内置包 39 附录一 sql*plus工具 40 附录1.1 sql*plus启动和关闭 41 ...
Oracle提供了多种与数据库交互的编程接口,如Pro*C/C++、ODBC、JDBC、SQLJ和OCI。每种接口有其适用场景和优缺点,例如,PL/SQL适合于在数据库服务器端执行大量数据处理任务,而JDBC更适合于Java应用程序与数据库的...
在给定的部分内容中,展示了一个简单的Java程序通过`CallableStatement`接口来调用一个名为`C_TESTSQL_PROC`的存储过程。这个过程接收四个输入参数和一个输出参数,并返回查询结果。 ```java try{ con=...
- **过程(Procedure)**:对象描述+`_pro` 或者仅使用对象描述。例如:`add_new_order_pro` 或 `add_new_order`。这同样适用于包内部定义的过程。 - **函数(Function)**:对象描述+`_fun` 或者仅使用对象描述。例如...
6. **性能分析**:可以记录函数调用的耗时,帮助分析性能瓶颈。 **总结** codesite DELPHI插件是Delphi开发中的一个强大辅助工具,它简化了调试过程,提高了代码质量。无论你是初学者还是经验丰富的开发者,...
$db = new mysqli(C("DB_HOST"), C("DB_USER"), C("DB_PWD"), C("DB_NAME"), C("DB_PORT")); // 检查连接是否成功 if (mysqli_connect_errno()) { throw_exception(mysqli_connect_error()); } // 构建调用...
通过调用存储过程,可以简化复杂的业务逻辑处理,并提高应用程序的执行效率。本文将详细介绍两个与数据库备份与恢复相关的存储过程:`sp_BackupDB`(备份数据库)和`sp_RestoreDb`(还原数据库)。 #### 一、`sp_...
ProC的全称是"Procedure C",它将C/C++语言的高效性和Oracle数据库的特性相结合,为开发高性能的数据库应用提供了可能。 Oracle ProC的主要优势在于它可以直接嵌入PL/SQL代码,这样就能充分利用Oracle数据库的存储...