- 浏览: 538449 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (174)
- Groovy (28)
- Grails (14)
- DHTML (5)
- JS (4)
- jQuery (16)
- JAVA (16)
- Eclipse (4)
- Hibernate (2)
- Resin (2)
- Oracle (25)
- Maven (4)
- Struts2 (1)
- WebWork2 (3)
- Tomcat (2)
- Windows7 (4)
- Griffon (2)
- PowerDesigner (1)
- Pro*C (2)
- JDK (1)
- 乱码 (2)
- WebService (3)
- .NET (1)
- 性能 (2)
- 安装 (1)
- 命令行 (1)
- function (1)
- type (1)
- Mysql (1)
- 同步 (1)
- Synchronized (1)
- json (3)
- Office (1)
- Visio (1)
- 自定义形状 (1)
- jsong (0)
- gson (1)
- fastjson (1)
- EM (1)
- DB2 (6)
- Sequence (1)
- RHEL5.x (1)
- WAS6.1 ND (1)
- SQL (1)
- -964 (1)
- Linux (4)
- Date (1)
- Format (1)
- Add (1)
- SHELL (1)
- CSS (2)
- Bootstrap (1)
- nginx (1)
- Openresty (2)
- JWPlayer (1)
- showdoc (1)
- 常用网址 (1)
- lua (2)
- SpringBoot (1)
- Office pdf linux (1)
最新评论
-
纵观全局:
Great
阿里巴巴开源JSON解析组件FastJson简单使用笔记 -
guxuede:
...
Groovy编程技巧 -
a1439226817:
groovy用的多吗?我还没发现有哪个java项目在用这个?
Groovy同步 -
晴子9034:
在网上搜到的几乎全是说满了就扩充。但是我有个疑问,满了就扩充, ...
解决DB2 SQLCODE=-964日志文件满的问题 -
在世界的中心呼喚愛:
好东西啊,就用这个包。
阿里巴巴开源JSON解析组件FastJson简单使用笔记
本总结跟网上那些垃圾转贴有本质的区别,乃实际环境摸索出来的。
============ 分割线 =============
数据库版本:ORACLE 10.2.0.1.0
操作系统:RHEL4.x
1. 编辑$ORACLE_HOME/precomp/admin/pcscfg.cfg,在sys_include=处加上stddef.h所在的目录。
附:stddef.h查找方法
用root执行find / -name stddef.h -print
关键在于确定查找出来的N个stddef.h的目录。以下为10.14.3.10服务器上的查找结果:
/usr/include/linux/stddef.h
/usr/include/xulrunner-sdk-1.9/system_wrappers/stddef.h
/usr/lib/gcc/x86_64-redhat-linux6E/4.3.2/include/stddef.h
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include/stddef.h
/usr/lib/bcc/include/stddef.h
/usr/lib/syslinux/com32/include/stddef.h
/usr/lib/syslinux/com32/include/bitsize/stddef.h
/usr/src/kernels/2.6.18-128.el5-x86_64/include/linux/stddef.h
/home/term/pack/STLport-5.2.1/stlport/stddef.h
/home/mytools/STLport-5.1.5/stlport/stddef.h
根据http://blog.chinaunix.net/space.php?uid=20011314&do=blog&cuid=527167帖子介绍,我选择了
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include/stddef.h加入到pcscfg.cfg文件中。(此处为关键步骤)
2. 编译执行:
3. 例一:dept.pc源代码
4.例二:emp.pc源代码
5. 例三:test1.pc
6. 例四:test.pc
问题:dept.pc输出的中文数据是乱码,尚未解决
============ 分割线 =============
数据库版本:ORACLE 10.2.0.1.0
操作系统:RHEL4.x
1. 编辑$ORACLE_HOME/precomp/admin/pcscfg.cfg,在sys_include=处加上stddef.h所在的目录。
附:stddef.h查找方法
用root执行find / -name stddef.h -print
关键在于确定查找出来的N个stddef.h的目录。以下为10.14.3.10服务器上的查找结果:
/usr/include/linux/stddef.h
/usr/include/xulrunner-sdk-1.9/system_wrappers/stddef.h
/usr/lib/gcc/x86_64-redhat-linux6E/4.3.2/include/stddef.h
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include/stddef.h
/usr/lib/bcc/include/stddef.h
/usr/lib/syslinux/com32/include/stddef.h
/usr/lib/syslinux/com32/include/bitsize/stddef.h
/usr/src/kernels/2.6.18-128.el5-x86_64/include/linux/stddef.h
/home/term/pack/STLport-5.2.1/stlport/stddef.h
/home/mytools/STLport-5.1.5/stlport/stddef.h
根据http://blog.chinaunix.net/space.php?uid=20011314&do=blog&cuid=527167帖子介绍,我选择了
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include/stddef.h加入到pcscfg.cfg文件中。(此处为关键步骤)
2. 编译执行:
$ proc dept.pc $ cc -o dept dept.c -I $ORACLE_HOME/precomp/public -L $ORACLE_HOME/lib -l clntsh
3. 例一:dept.pc源代码
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <sqlca.h> #include <locale.h> int main(int argc, char* argv[]) { EXEC SQL BEGIN DECLARE SECTION; char *uid = "ocs_test/ocs_test"; char name[32]="NULL"; /*int i;*/ EXEC SQL VAR name is STRING(32); EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT :uid; if(sqlca.sqlcode == 0) printf("connect success!\n"); else printf("connect failure!\n"); EXEC SQL DECLARE cur_client CURSOR FOR select itemname from ocs_sm_function; EXEC SQL OPEN cur_client; setlocale( LC_ALL, "chs" ); while(1) { strcpy(name, ""); EXEC SQL FETCH cur_client INTO :name; if(sqlca.sqlcode == 1403) { break; } printf("name is %s\n", name); } EXEC SQL CLOSE cur_client; /* 释放数据库资源 */ EXEC SQL ROLLBACK WORK RELEASE; return 0; }
4.例二:emp.pc源代码
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <sqlda.h> #include <sqlcpr.h> EXEC SQL INCLUDE sqlca; /*RELEASE_CURSOR=YES 使PROC 在执行完后释放与嵌入SQL有关资源*/ EXEC ORACLE OPTION (RELEASE_CURSOR = YES); EXEC SQL BEGIN DECLARE SECTION; char *vc_user = "scott/tiger"; /*varchar vc_user[20];*/ long al_empno=0; char ac_ename[11]=""; char ac_hiredate[20]=""; double af_sal=0; EXEC SQL VAR ac_ename IS STRING(11); EXEC SQL VAR ac_hiredate IS STRING(20); EXEC SQL END DECLARE SECTION; /*错误处理函数*/ void sql_error(char *msg) { printf("\n%s,%ld,%s\n", msg,sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc); EXEC SQL ROLLBACK RELEASE; exit(-1); } int main(int argc, char *argv[]) { EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE ERROR: "); /*连接数据库*/ /* strcpy(vc_user.arr,"scott/tiger"); vc_user.len=16; */ EXEC SQL CONNECT :vc_user; EXEC SQL DECLARE cur_emp CURSOR FOR SELECT EMPNO, ENAME,to_char(HIREDATE,'yyyy/mm/dd hh24:mi:ss'),SAL FROM EMP; EXEC SQL OPEN cur_emp; while(1) { al_empno=0; strcpy(ac_ename,""); strcpy(ac_hiredate,""); af_sal=0; EXEC SQL FETCH cur_emp INTO :al_empno, :ac_ename, :ac_hiredate, :af_sal; if( sqlca.sqlcode == 1403) { break; } printf("empno=%ld,ename=%s,hiredate=%s,sal=%lf\n",al_empno,ac_ename,ac_hiredate,af_sal); } EXEC SQL CLOSE cur_emp; EXEC SQL ROLLBACK WORK RELEASE; }
5. 例三:test1.pc
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <sqlca.h> int main(int argc,char* argv[]) { EXEC SQL BEGIN DECLARE SECTION; char *uid = "scott/tiger"; long userid=0; char username[51]=""; EXEC SQL VAR username IS STRING(51); EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT :uid; if(sqlca.sqlcode == 0) printf("connect sucess!\n"); else printf("connect fail!\n"); EXEC SQL DECLARE cur_user CURSOR FOR SELECT DEPTNO, DNAME FROM DEPT; EXEC SQL OPEN cur_user; while(1){ userid=0; strcpy(username,""); EXEC SQL FETCH cur_user INTO :userid, :username; if( sqlca.sqlcode == 1403) { break; } printf("userid=%ld,username=%s\n",userid,username); } EXEC SQL CLOSE cur_user; // EXEC SQL COMMIT WORK RELEASE; EXEC SQL ROLLBACK WORK RELEASE; return 0; }
6. 例四:test.pc
#include <stdio.h> #include <string.h> #include <stdlib.h> EXEC SQL include sqlca; EXEC ORACLE OPTION (RELEASE_CURSOR = YES); EXEC SQL BEGIN DECLARE SECTION; VARCHAR username[20]; VARCHAR password[20]; EXEC SQL END DECLARE SECTION; void sql_error() { EXEC SQL WHENEVER SQLERROR CONTINUE; printf("/n Oracle error detected:/n"); printf("/n%.70s/n",sqlca.sqlerrm.sqlerrmc); EXEC SQL ROLLBACK RELEASE; exit(1); } main() { strcpy(username.arr,"scott"); strcpy(password.arr,"tiger"); username.len=strlen(username.arr); password.len=strlen(password.arr); EXEC SQL CONNECT :username IDENTIFIED BY :password; printf("sqlca.sqlcode=%d\n",sqlca.sqlcode); printf("login user=%s\n",username.arr); exit(0); return 0; }
问题:dept.pc输出的中文数据是乱码,尚未解决
发表评论
-
建立数据库链路、统计表记录数、查看会话及最大会话数
2013-06-27 11:44 16861. 生成统计表数据SQL select 'analyze t ... -
oracle 10.2.0.1.0启动并访问不同实例的EM
2012-08-01 12:44 2952环境:linux+oracle10.2.0.1.0 假设有2 ... -
(转)分转成元
2012-05-23 17:53 1433分转成元,如果为空则默认为0 select '¥'||trim ... -
ORACLE函数传入TYPE参数
2012-05-11 18:32 1593SQL> create type test_type ... -
命令行安装oracle
2012-04-01 14:44 1510参考并经本人整理:http://www.sosdb.com/t ... -
转:oracle随系统启动的脚本
2012-03-06 17:36 1079原贴地址:http://space.itpub.net/261 ... -
Linux下Oracle自动启动
2012-01-09 16:47 10041.使用root用户修改/etc/oratab 文件: # g ... -
ORACLE取远程数据库序列值
2011-11-28 17:32 1157select seq_test.nextval@dl_re ... -
真正解决dbca、netca、em等乱码问题(含jdk安装)
2011-10-27 16:49 4037参考地址:猛击这里 注意:62位系统此方法貌似无效,会报“j ... -
Oracle查看建表时间
2011-10-25 09:38 1236SELECT CREATED FROM USER_OBJE ... -
为ORACLE添加审计功能,实现用户对数据操作的记录!
2011-10-25 09:30 33371. 首先以sysdba身份登录到数据库查看参数: SQL〉s ... -
[转]PROC中的4种动态SQL简介
2011-09-26 11:22 1859[url]http://oracle.chinaitlab.c ... -
(转)通过PL/SQL访问WebService
2011-07-18 16:37 2047转自:http://hi.baidu.com/h_sn999/ ... -
ORACLE做socket编程
2011-07-18 16:35 5504create or replace function fu ... -
快速插入数据
2011-07-18 16:33 1085在表中数据量很大的时候,插入数据变得越来越慢,采用此方法将会提 ... -
Oracle数据库日常维护
2011-07-14 16:22 1093Oracle数据库日常维护 ... -
ORACLE分页查询语句
2011-05-19 18:04 1143SELECT * FROM (SELECT a.*, ... -
静态视图之-常用数据字典及字典类别
2011-05-13 14:16 1349CREATE OR REPLACE VIEW V_Dic ... -
ORACLE实现表的反转
2010-12-28 16:43 1691这是目标数据: 这是 ... -
ORACLE日期相加减
2010-07-01 11:07 2040select sysdate, (sysd ...
相关推荐
1. Pro*C简介:Pro*C是一种将SQL语句嵌入C程序中的开发工具,它允许开发者在C语言中直接使用SQL语句访问Oracle数据库。它是一种第三代语言嵌入式SQL工具,可以在Oracle数据库管理系统中使用。Pro*C程序可以执行...
Pro*C是Oracle公司开发的一种预编译器,它允许程序员在C语言中嵌入PL/SQL代码,使得C程序可以直接与Oracle数据库交互。通过Pro*C,开发者可以利用C语言的强大功能和效率,同时享受Oracle数据库提供的高级数据库操作...
PRO*C是一种用于将SQL语句嵌入到C语言程序中的预编译接口。通过这种方式,开发者可以利用C语言的强大功能来处理复杂的逻辑,并同时利用SQL来进行高效的数据管理和操作。本文将详细介绍PRO*C的基本概念、程序结构、...
2. **SQL嵌入C语言**:详细解释如何在C代码中嵌入SQL语句,包括SELECT、INSERT、UPDATE、DELETE等操作,以及如何处理结果集。 3. **PL/SQL在Pro*C中的应用**:展示如何在C程序中调用存储过程、函数和包,以利用...
Pro*C是Oracle公司提供的一种预编译器,它允许C或C++程序直接调用PL/SQL代码,极大地简化了数据库操作。本篇文章将详细探讨Linux下使用C/C++和Pro*C连接Oracle数据库的技术细节。 1. **Pro*C介绍**: Pro*C是...
《精通Oracle 10g Pro*C/C++编程》是一本专为数据库开发人员设计的教程,作者王海亮和张立民通过这本书深入探讨了如何使用C或C++语言与Oracle 10g数据库进行高效交互。源代码与学习笔记的提供,为读者提供了实践操作...
**Pro*C/C++ 编程** Pro*C/C++ 是一种集成在C或C++编程语言中的预处理器,它允许程序员直接在源代码中嵌入PL/SQL语句,用于与Oracle数据库进行交互。这种编程方式提供了高效且灵活的数据库访问手段,特别适合于开发...
在IT领域,PRO*C是Oracle公司提供的一种预编译器,它允许开发人员使用C语言来编写PL/SQL代码,从而更高效地与Oracle数据库进行交互。这个“PRO*C入门实例”可能是针对初学者的一个教程,通过一个实际的代码示例来...
Oracle Pro*C 是一种集成的开发工具,用于在C语言中嵌入SQL语句,以便高效地与Oracle数据库进行交互。这种技术将C语言的强大功能与SQL的数据库操作能力结合在一起,提供了一种灵活且高性能的方式来构建数据库应用...
《精通PRO*C编程》这本书是针对Oracle数据库应用开发的一本专业指南,主要讲解如何使用PRO*C,Oracle提供的C语言预处理器,进行高效的数据库应用程序开发。PRO*C是Oracle Corporation为C程序员设计的一种工具,它...
Pro*C是Oracle提供的一种工具,它允许开发人员使用C语言来编写存储过程、函数和其他数据库访问代码,并且能够直接与Oracle数据库API交互。本文将详细介绍如何在Java中调用Pro*C编译的程序,并探讨相关的知识点。 ...
《Pro*C程序设计ORACLE调用接口》是关于在C语言中使用Oracle数据库的一种高效方法。Pro*C,全称为Pre-Compiler for C,是Oracle公司提供的一个预编译器,它允许开发者直接在C程序中嵌入SQL语句,极大地提高了数据库...
【标题】"VC整合Pro*C开发环境配置(图)"涉及的是在Visual C++(简称VC)集成开发环境中配置Oracle的Pro*C编译器的过程。Pro*C是Oracle公司提供的一种预编译器,它允许C/C++程序员直接在C或C++代码中嵌入SQL语句,...
Oracle 11g Pro*c 环境 编译 makefile
《Pro*C程序设计详解》是一本深入探讨Pro*C编程技术的专业书籍,旨在帮助读者全面理解和掌握Pro*C这一C语言与Oracle数据库交互的重要工具。Pro*C是Oracle公司提供的一种预编译器,它允许程序员在C语言中直接嵌入SQL...
Pro*C,是Oracle提供的一种预编译器,用于将C语言与PL/SQL结合,使得在C/C++程序中可以直接操作Oracle数据库。本文将深入探讨如何在Pro*C中实现分页查询,主要关注两种常用的方法。 首先,让我们回顾一下基本的分页...
PRO*C(也称为预编译C)是一种允许在C程序中嵌入SQL语句的技术,它结合了C语言的强大功能与Oracle数据库的高效数据处理能力。本文主要探讨如何使用PRO*C进行高效的大规模数据导出。 #### 二、问题概述 假设有一个...
Pro*C是C语言与Oracle数据库的一种融合,它允许开发者将C语言的灵活性与SQL的数据库操作能力相结合,从而实现高效的数据处理。 文章首先介绍了Pro*C的主要特点和优势。其一,Pro*C的源代码由C语言和内嵌的SQL语句...
通过Pro*C,开发者可以利用C语言的强大功能和Oracle数据库的高效数据处理能力。以下是对Oracle Pro*C及其相关知识点的详细说明: 1. **预编译过程**:Pro*C程序首先需要通过Oracle的预编译器PCC处理,这个过程将...
Pro*C增删改查Oracle数据库中数据表的代码