C语言开发过程中,需要对数据库进行操作,使用 Oracle 数据库一般会采用Oracle ProC/C++ 预编译器。本文章来自于Oracle官方文档,详细介绍 Oracle ProC/C++ 预编译器,了解它在开发操作 Oracle 数据的应用程序中的作用,并了解它使您的应用程序能够做什么。
一、Oracle 预编译器介绍
Oracle 预编译器是一种编程工具,使用户能够在高级源程序中嵌入 SQL 语句。正如图所示,预编译器接受源程序作为输入,转换嵌入式SQL语句转换为标准的Oracle运行时库调用,并产生一个修改的源程序,可编译,链接,并以通常的方式执行。
二、使用Oracle Pro*C/C++ 预编译器
Oracle Pro*C/C++ 预编译器使您可以在应用程序中使用 SQL 的强大功能和灵活性。一个方便、易于使用的界面让您的应用程序可以直接访问 Oracle。
与许多应用程序开发工具不同,Pro*C/C++ 允许您创建高度定制的应用程序。例如,您可以创建包含最新窗口和鼠标技术的用户界面。您还可以创建无需用户交互即可在后台运行的应用程序。
此外,Pro*C/C++ 可帮助您微调您的应用程序。它允许密切监视资源使用、SQL 语句执行和各种运行时指标。使用此信息,您可以更改程序参数以获得最佳性能。
尽管预编译在应用程序开发过程中增加了一个步骤,但它节省了时间。预编译器,将每个嵌入式 SQL语句转换为对 Oracle 运行时库 (SQLLIB) 的调用。Pro*C/C++ 预编译器还分析主变量,定义结构到列的映射,并在 SQLCHECK=FULL 的情况下执行嵌入式 SQL 语句的语义分析。
三、使用SQL语句
如果要访问和操作 Oracle 数据,则需要SQL语句。是通过 SQL*Plus 交互使用 SQL还是嵌入到应用程序中取决于手头的工作。如果作业需要 C或 C++的过程处理能力,或者必须定期完成,请使用嵌入式 SQL。
SQL已成为首选的数据库语言,因为它灵活、强大且易于学习。由于是非程序性的,它可以让您指定想要完成的工作,而无需指定如何去做。一些类似英语的语句可以很容易地一次操作一行或多行 Oracle 数据。
您可以执行任何 SQL(不是 SQL*Plus) 来自应用程序的语句。例如,您可以
动态创建、更改和删除数据库表
SELECT、INSERT、UPDATE 和 DELETE 数据行
COMMIT 或 ROLLBACK 事务
在应用程序中嵌入 SQL 语句之前,您可以使用 SQL*Plus 以交互方式测试它们。通常,从交互式 SQL 切换到嵌入式 SQL 只需要很小的更改。
四、Pro*C/C++预编译器的好处
正如图所示,Pro*C/C++ 提供了许多功能和好处,你要制定有效的,可靠的应用程序可帮助。
Pro*C/C++ 支持:
- 用 C 或 C++ 编写应用程序。
- 遵循 ANSI/ISO 标准,在高级语言中嵌入 SQL 语句。
- 利用动态 SQL,这是一种高级编程技术,可让您的程序在运行时接受或构建任何有效的 SQL 语句。
- 设计和开发高度定制的应用程序。
- 编写共享服务器进程应用程序。
- 在 Oracle 内部数据类型和高级语言数据类型之间自动转换。
- 通过在应用程序中嵌入 PL/SQL 事务处理块来提高性能。
- 内联和在命令行上指定有用的预编译器选项,并在预编译期间更改它们的值。
- 使用数据类型等效来控制 Oracle 解释输入数据和格式化输出数据的方式。
- 分别预编译多个程序模块,然后将它们链接成一个可执行程序。
- 完整检查嵌入式 SQL 数据操作语句和 PL/SQL 块的语法和语义。
- 使用 Oracle Net 在多个节点上并发访问 Oracle 数据库。
- 使用数组作为输入和输出程序变量。
- 有条件地预编译宿主程序中的代码段,以便它可以在不同的环境中运行。
- 通过使用以高级语言编写的用户出口直接与 SQL*Forms 接口。
- 使用 SQL Communications Area (SQLCA) 和 WHENEVER 或 DO 语句处理错误和警告。
- 使用 Oracle Communications Area (ORACA) 提供的一组增强诊断。
- 在数据库中使用用户定义的对象类型。
- 在数据库中使用集合(变量和嵌套表)。
- 在数据库中使用 LOB(大对象)。
- 使用国家字符集数据存储在数据库中。
- 在您的程序中使用 OCI(Oracle 调用接口)函数。
- 使用多线程应用程序。
- Microsoft Visual Studio .NET 2002/2003 支持。
- Pro*C/C++ 是一个功能齐全的工具,支持嵌入式 SQL 编程的专业方法。