PROC编程相信在Linux下工作的朋友应该不陌生吧!下面就来具体介绍些Proc编程相关的东西,此文相对简单,请高手们绕行。
PROC编程篇
(此文仅供Oracle初学者参考只用)
/**********************************************
** 文章名称:Oracle10G--PROC编程篇(Linux)
** 版权信息:可以任意转载,但要注明出处及作者信息
***********************************************/
一、简单取得系统时间
#include
#include
#include
EXEC SQL INCLUDE sqlca;
EXEC SQL INCLUDE oraca;
main( int argc, char *argv[] )
{
EXEC SQL BEGIN DECLARE SECTION;
varchar vcBuffer[32];
EXEC SQL END DECLARE SECTION;
/* Connect To Oracle Datebaase */
if(OU_ConnectDatabase("weigw","weigw") != 0)
{
printf("Connect Database failed!\n");
return -1;
}
memset(vcBuffer.arr, 0x00, sizeof(vcBuffer.arr));
EXEC SQL select sysdate into :vcBuffer from dual;
printf("SYSDATE:\n", vcBuffer.arr);
EXEC SQL COMMIT WORK RELEASE;
return 0;
}
/*
**
** 功能说明:连接数据库
** 输入参数:
** 输入参数:
** 输出参数:
** 返回值说明:0-成功 其他-失败
*/
int OU_ConnectDatabase(char *con_name,char *con_passwd)
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR uid[20];
VARCHAR pwd[20];
EXEC SQL END DECLARE SECTION;
strcpy(uid.arr,con_name); /*strcpy(uid.arr,"weigw");*/
uid.len=strlen(uid.arr);
strcpy(pwd.arr,con_passwd); /*strcpy(pwd.arr,"weigw");*/
pwd.len=strlen(pwd.arr);
EXEC SQL CONNECT :uid IDENTIFIED BY :pwd ;
return sqlca.sqlcode;
}
二、多库用户操作(排他锁)
#include
#include
#include
EXEC SQL INCLUDE sqlca;
EXEC SQL INCLUDE oraca;
main( int argc, char *argv[] )
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR vcBuffer[32];
int ID;
const char *dbname1 = "dbname1";
const char *dbname2 = "dbname2";
EXEC SQL END DECLARE SECTION;
/* Connect To Oracle Datebaase dbname1 */
if(OU_ConnectDatabase("weigw","weigw","orcl","dbname1") != 0)
{
printf("Connect Database failed!\n");
return -1;
}
/* Connect To Oracle Datebaase dbname2 */
if(OU_ConnectDatabase("weigw","weigw","orcl","dbname2") != 0)
{
printf("Connect Database dbname 2 failed!\n");
return -1;
}
ID = 0;
memset(vcBuffer.arr, 0x00, sizeof(vcBuffer.arr));
vcBuffer.len = 0;
EXEC SQL AT :dbname1 SELECT COUNT(*) INTO :ID FROM WEIGWTEST;
ID += 1;
strncpy(vcBuffer.arr, "dbname1", sizeof(vcBuffer.arr) - 1);
vcBuffer.len = strlen(vcBuffer.arr);
EXEC SQL AT :dbname1 INSERT INTO WEIGWTEST VALUES(:ID, :vcBuffer);
EXEC SQL AT :dbname2 INSERT INTO WEIGWTEST VALUES(:ID, :vcBuffer);
EXEC SQL AT :dbname1 COMMIT;
EXEC SQL AT :dbname1 ROLLBACK;
EXEC SQL COMMIT WORK RELEASE;
return 0;
}
/*
**
** 功能说明:连接数据库
** 输入参数:
** 输入参数:
** 输出参数:
** 返回值说明:0-成功 其他-失败
*/
int
OU_ConnectDatabase(
char *con_name,
char *con_passwd,
char *con_string,
char *con_dbname
) {
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR uid[20];
VARCHAR pwd[20];
VARCHAR sid[20];
VARCHAR dbname[20];
EXEC SQL END DECLARE SECTION;
memset(uid.arr, 0x00, sizeof(uid.arr));
uid.len = 0;
memset(pwd.arr, 0x00, sizeof(pwd.arr));
pwd.len = 0;
memset(sid.arr, 0x00, sizeof(sid.arr));
sid.len = 0;
memset(dbname.arr, 0x00, sizeof(dbname.arr));
dbname.len = 0;
strcpy(uid.arr,con_name);
uid.len=strlen(uid.arr);
strcpy(pwd.arr,con_passwd);
pwd.len=strlen(pwd.arr);
strcpy(sid.arr,con_string);
sid.len=strlen(sid.arr);
strcpy(dbname.arr,con_dbname);
dbname.len=strlen(dbname.arr);
EXEC SQL CONNECT :uid IDENTIFIED BY :pwd AT :dbname USING :dbname;
return sqlca.sqlcode;
}
分享到:
相关推荐
Oracle ProC是Oracle数据库提供的一种集成的C编程接口,它允许开发者使用C语言来编写存储过程、函数、触发器等数据库对象。在Linux环境下,利用ProC开发Oracle应用,可以充分利用C语言的效率和灵活性,同时享受...
总结来说,Oracle的ProC编程在Linux环境下提供了强大而灵活的数据库访问能力,适用于需要高性能和低级别的数据库控制的C程序。开发者需要理解C语言、PL/SQL以及Oracle的预编译接口,才能有效利用ProC进行开发。
【C语言连接Oracle数据库的PROC编程详解】 在C语言中进行Oracle数据库编程,Proc(预编译器)是一种常用的工具,它允许开发者将PL/SQL块嵌入到C程序中,方便地与Oracle数据库交互。以下是对Proc编程的详细介绍,...
首先,标题《linux下面proc编程经典教程》指的是在Linux环境下进行proc文件系统的编程实践。Linux内核提供了一个伪文件系统procfs,通常挂载在/proc目录下。这个文件系统包含了内核提供的大量运行时信息,如系统内存...
### Oracle ProC编程知识点详解 #### 一、Oracle Pro*C/C++编程简介 **Oracle Pro*C/C++**是一种用于在Linux环境下与Oracle数据库交互的预编译器工具,它允许开发者将SQL语句嵌入到C/C++程序中,从而实现高效的...
在Linux环境下,Oracle的PRO*C程序是一种C语言预...总之,Linux环境下的Oracle PRO*C编程涉及环境配置、预处理、编译和运行等步骤。理解这些概念和流程,可以帮助开发者更有效地利用C语言与Oracle数据库进行交互。
### Linux系统下的Oracle ProC数据库编程详解 #### 一、引言 随着信息技术的发展,数据库管理系统(DBMS)已经成为现代企业信息系统的重要组成部分。Oracle数据库作为业界领先的关系型数据库管理系统之一,在企业和...
01-unix操作系统-陈宗权-2day 02-标准C编程-陈宗权-9.5day1 03-标准C++编程-陈守权-7dat1 ...10-MFC6.3G 11_数据库ADO 12_Socket_DirectX 13_SHELL_3day 14_ORACLE Code(课程代码)
Proc ++ 编程经验总结是关于Proc编程的经验总结,涵盖了Linux系统下的Oracle数据库编程、环境设置、Pro*C编程、Oracle编程经验及维护点滴、PROC编程经验介绍、宿主变量的声明、宿主变量的作用范围、数据库的连接与...
### DBA在Linux上管理Oracle 10g #### I/O模式详解 1. **标准I/O**:这种模式下的I/O操作虽然速度较快,但通常不在Oracle环境下使用,因为Oracle自身提供了更高效的I/O机制。 2. **同步I/O**:这是Oracle在Linux...
本篇文章将详细探讨Linux下使用C/C++和Pro*C连接Oracle数据库的技术细节。 1. **Pro*C介绍**: Pro*C是Oracle客户端工具集的一部分,它将PL/SQL块转换为C/C++函数,使得开发者可以在C或C++程序中直接执行Oracle...
在本项目"Linux上Oracle数据库设计"中,我们聚焦于如何在Linux操作系统环境下构建和管理Oracle数据库,并结合ProC编程技术和GTK用户界面开发一个学生信息管理系统。以下将详细阐述涉及的知识点: 1. **Linux操作...
在Suse Linux 10上安装Oracle 10.2g是一个系统性的过程,涉及到多个步骤和必要的软件配置。以下是对整个安装过程的详细说明: 首先,你需要确保你的Linux系统满足Oracle 10.2g的最低软件配置要求。这包括特定版本的...
DBTranfer是一款工具,它实现了对Linux系统中Oracle数据库的访问封装,使得其他系统能够方便地进行数据交互。这个工具的关键在于它利用了libsqlora8库,这是一个Oracle提供的PROC库,主要用于非Oracle环境下的Oracle...
在Oracle环境中,Proc 提供了一种交互式的编程环境,使得数据库管理员和开发人员能够方便地创建、修改和调试存储过程、函数、包、触发器等PL/SQL代码。 "053 101 201 301 403"这些标签可能代表不同的学习阶段或课程...
压缩包主要包含了以下内容: (1) Unix基础 (2)标准C编程 (3)标准C++编程 (4)数据结构和算法 ...(10) Proc&C++ (11) DMS项目 (12) arm体系结构 (13) linux系统移植 (14) linux驱动开发 配套教学视频的阿里云链接
### ORACLE傻瓜手册知识点概览 #### 一、Oracle版本概述 ...- **2002/12 版本2.0**:全面升级了内容结构,新增了Oracle9i安装配置、OCI开发、MySQL安装配置开发等主题,并补充了数据库优化、PROC开发等方面的资料。
在IT行业中,`/proc`系统是...综上所述,`/proc`的学习涵盖了许多Linux系统管理和监控的基础知识,同时也涉及到数据库编程的相关技术。深入理解这些内容对于系统管理员、运维人员以及软件开发者来说都是至关重要的。
- **2002/12**:版本2.0,对内容进行了重新组织,增加了Oracle9i的安装配置、OCI开发、MySQL的安装配置和开发等内容,并补充了数据库优化和PROC开发的相关知识。 #### 五、Oracle安装与配置 - **1.1 通用设置**:...
- **版本1.2** (2000/10): 修改了Linux安装部分内容,并增加了数据字典参考、删除冗余记录的方法以及常见错误处理等。 - **版本1.3** (2001/03): 对安装部分、init.ora配置进行了更新,并新增了手工建库和MTS配置等...