1.  proc: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory
解决方法:https://blog.csdn.net/roofwei/article/details/38946453
 进入$ORACLE_HOME/lib文件夹,检查libclntsh是否存在
1>[oracle@oracledb lib]$ cd $ORACLE_HOME/lib

2>[oracle@oracledb lib]$ pwd
/opt/oracle/app/product/11.2.0/dbhome_1/lib

以root用户修改/etc/ld.so.conf添加$ORACLE_HOME/lib路径

3>[root@RHELDB tmp]# vi /etc/ld.so.conf,文件内容如下:

include ld.so.conf.d/*.conf
/opt/oracle/app/product/11.2.0/dbhome_1/lib #注:这里只能写绝对路径,不能写$ORACLE_HOME/lib

4>[root@RHELDB tmp]# ldconfig
---------------------
作者:roofwei
来源:CSDN
原文:https://blog.csdn.net/roofwei/article/details/38946453
版权声明:本文为博主原创文章,转载请附上博文链接!
   
  2.Pro*C/C++: Release 11.2.0.1.0 - Production on Sun Apr 21 08:25:21 2019

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

System default option values taken from: /opt/oracle/app/product/11.2.0/dbhome_1/precomp/admin/pcscfg.cfg
 
   
   Error at line 0, column 0 in file first.pc
PCC-F-02102, Fatal error while doing C preprocessing
解决方法:
https://www.linuxidc.com/Linux/2013-08/88880p2.htm

说明在 pcscfg.cfg 中系统头文件的位置不正确,需要重新设置:
查看pcscfg.cfg文件:

$[Oracle@oracleserver ~]$ cat /home/oracle/OraHome1/oracle10g/precomp/admin/pcscfg.cfg
sys_include=(/ade/aime_rdbms_9819/oracle/precomp/public,/usr/include,/usr/lib/gcc-lib/i486-SUSE-linux/2.95.3/include,/usr/lib/gcc-lib/i386-RedHat-linux/3.2.3/include,/usr/lib/gcc-lib/i386-redhat-linux7/2.96/include)
ltype=short
查找头文件 stddef.h 位置:

1》[root@oracleserver ~]# find / -name "stddef.h" -print
/usr/include/xulrunner-sdk-1.9/system_wrappers/stddef.h
/usr/include/linux/stddef.h
/usr/lib/bcc/include/stddef.h
/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h
/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h
/usr/lib/syslinux/com32/include/bitsize/stddef.h
/usr/lib/syslinux/com32/include/stddef.h
/usr/src/kernels/2.6.18-194.el5-i686/include/linux/stddef.h
比较发现,pcscfg.cfg中的/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include和/usr/lib/gcc-lib/i386-redhat-linux7/2.96/include路径均无效,与实际系统中的路径不符,修改为/usr/lib/gcc/i386-redhat-linux/4.1.1/include和/usr/lib/gcc/i386-redhat-linux/3.4.6/include 即可:

$ cat /home/oracle/OraHome1/oracle10g/precomp/admin/pcscfg.cfg
sys_include=(/ade/aime_rdbms_9819/oracle/precomp/public,/usr/include,/usr/lib/gcc-lib/i486-suse-linux/2.95.3/include,/usr/lib/gcc/i386-redhat-linux/4.1.1/include,/usr/lib/gcc/i386-redhat-linux/3.4.6/include)
ltype=short
写个简单的程序测试下:

$ proc test.pc
Pro*C/C++: Release 10.2.0.1.0 - Production on Tue May 21 16:07:16 2013

Copyright (c) 1982, 2005, Oracle. All rights reserved.

System default option values taken from: /home/oracle/OraHome1/oracle10g/precomp/admin/pcscfg.cfg

3。/usr/bin/ld: cannot find -lclntsh
/opt/oracle/app/product/11.2.0/dbhome_1/lib  $ORACLE_HOME/
vi ~/.bashrc
xport LIBRARY_PATH=$LIBRARY_PATH:/opt/oracle/app/product/11.2.0/dbhome_1/lib:/usr/lib:.

登录数据库:
sqlplus  system
Enter passwd:oracle
SQL>select * from emp;
关闭数据库:
shutdown immediate;

RHEL6.5系统管理中登录数据库的方法:
第一步:先以管理员身份登录oracle
sqlplus /nolog
SQL>conn sys as sysdba;  以系统管理员的身份连接
SQL> startup  nomount;        startup命令启动数据库实例
SQL>alter database mount;    挂载数据库
SQL>alter database open;    alter database命令讲数据库的状态修改为open

第二步:以普通用户登录:
sqlplus system
passwd:oracle
关闭数据库:
SQL>shutdown immediate;

create table  emp(
       id  number,
       name varchar2(30),
       salary number  
   );
   
   插入数据库:
   insert  into emp values(1,'test1',123);
   commit;

接下来编写程序

//first.pc   C语言编写

/*
[oracle@oracledb]$ proc first.pc
[oracle@oracledb]$  gcc first.c -lclntsh
[oracle@oracledb$ ./a.out
*/

#include<stdio.h>

/* 包含一个数据结构 */
exec sql include sqlca;
int main()
{

char userpasswd[30]="system/oracle";
char var_name[30];
/* 链接数据库 */
exec sql connect:userpasswd;
/* 查询 */
exec sql select name into :var_name  from emp where id=1;
printf("var_name=%s \n",var_name);

/* 提交之后断开链接 */
exec sql commit work release;
}

mycpp.pc  C++ 语言编写

//    proc ***.pc oname=***.cpp parse=none code=cpp;
//    proc mycpp.pc oname=mycpp.cpp parse=none code=cpp
//    g++ mycpp.cpp -lclntsh
//    ./a.out
#include<iostream>
using namespace std;

/* 包含一个数据结构 */
exec sql include sqlca;
int main()
{
    exec sql begin declare section;
    char userpasswd[30]="system/oracle";
    char var_name[30];
    exec sql end   declare section;
    /* 链接数据库 */
    exec sql connect:userpasswd;
    /* 查询 */
    exec sql select name into :var_name  from emp where id=1;
    cout<<"var_name="<<var_name<<endl;
    /* 提交之后断开链接 */
    exec sql commit work release;

}

RHEL6.5安装成功ORACLE11GR2之后,编写PROC程序出错解决方法的更多相关文章

  1. win7 64位安装oracle10g出现未知错误,程序异常终止解决方法

    修改Oracle 10G\database\stage\prereq\db\refhost.xml 在 </SYSTEM> <CERTIFIED_SYSTEMS>后面添加 &l ...

  2. PHP XAMPP windows环境安装扩展redis 致命错误: Class 'Redis' not found解决方法

    PHP XAMPP windows环境安装扩展redis 致命错误: Class 'Redis' not found解决方法 1.电脑需要先安装redis服务端环境,并在安装目录下打开客户端redis ...

  3. 新安装的win7/win10系统,所有驱动都没安装,插入U盘也无法识别解决方法

    我是使用老毛挑安装的系统,结果安装好之后,才发现所有驱动都没有安装,例如usb,网卡驱动等 解决方法就是先把驱动下载到系统安装盘里面,然后再次进入安装系统界面,相当于重新安装系统,但实际上我们不需要. ...

  4. python2在安装pywin32后出现ImportError: DLL load failed 解决方法

    python2在安装pywin32后出现ImportError: DLL load failed 解决方法 在python2中有时候会出现: import win32api   ImportError ...

  5. Postman Interceptor安装成功却无法在Postman启用的解决办法

    新手在使用 Postman 和Postman Interceptor的过程中总会遇到各种各样的问题.我们 chrome插件网 争取在这里汇总大家遇到的所有的问题的解决方案.今天要分享的解决方案问题是: ...

  6. 安装PL/SQL Developer 遇到的问题及解决方法

    在用PL/SQL Developer安装Oracle客户端时,报错误,初始化失败,一直找不到原因,换Oracle版本也解决不了问题,之后才发现,是Oracle的环境变量配置错了,之前用户配了Oracl ...

  7. linux下安装redis及其中遇到的问题的解决方法

    1.将下载好的压缩包放到/usr/local目录下# tar xzf redis-3.0.2.tar.gz # cd redis-3.0.2 # make 提示错误 make: cc: Command ...

  8. CentOS7安装Docker时的异常报错与解决方法

    重要:有些人在vmware中安装了新的centos用于使用docker,但是往往会忽略了更换源与进行系统update, 这样会导致安装过程中出现诸多如下类问题,为了避免不必要的麻烦在安装docker前 ...

  9. 安装docker17.06.0版本报错和解决方法

    本人在自己电脑的虚拟机里安装docker ce 17.06.0版本的时候报如下错误: [root@manager2 yum.repos.d]# yum install docker-ce-17.06. ...

随机推荐

  1. <MySQL>入门七 存储过程和函数

    -- 存储过程和函数 /* 存储过程和函数:类似java中的方法 好处: 1.提高代码的重用性 2.简化操作 */ /* 存储过程 含义:一组预先编译好的SQL语句的集合.理解成批处理语句 1.提高代 ...

  2. python3 http.server备忘

    python3英文的 打印出来应该不错: https://docs.python.org/3/library/http.server.html#module-http.server python2.7 ...

  3. 深入理解PHP之foreach

    招聘 标签(空格分隔): 招聘 PHP 国贸 语言基础 foreach 语法结构提供了遍历数组的简单方式. php5之前, foreach仅能用于数组php5+, 利用foreach可以遍历对象 fo ...

  4. HDU 5178 pairs(双指针)

    HDU 5178 pairs(双指针) Hdu 5178 解法:因为要求的是绝对值小于等于k,因此数字的序号关系并不重要,那么排序后使用双指针即可解决这个问题. #include<queue&g ...

  5. 3.3.3 char 类型

        char类型原本用于表示单个字符.不过,现在情况已经有所变化.如今,有些Unicode字符可以用一个char值描述,另外一些Unicode字符则需要两个 char 值.       char类 ...

  6. Python基础(八)装饰器

    今天我们来介绍一下可以提升python代码逼格的东西——装饰器.在学习装饰器之前我们先来复习一下函数的几个小点,方便更好的理解装饰器的含义. 一.知识点复习 1, 在函数中f1和f1()有什么不同,f ...

  7. VScode输出中文乱码的解决方法------测试过可以用

    用python写个爬虫,配置个VScode环境,发现输出都是乱码,翻阅网站后发现一个简单有效的方法,在此谢过网络上的大牛们的无私分享,我也在此记录一下,以备后用: 文件---->首选项----& ...

  8. Linux下汇编语言学习笔记73 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  9. Codeforces Round #403(div 2)

    A =w= B 题意:一个数轴上有n个整点,每个点都有一个速度,选一个点让他们集合,使得时间最少. 分析: 直接三分 C 题意:给定一棵树,任意两个距离小等于二的点不能染相同的颜色,求最小颜色数和染色 ...

  10. pt工具加字段脚本

    #!/bin/bashcnn_db=$1table=$2alter_conment=$3 cnn_host='192.168.10.14'cnn_user='root'cnn_pwd='123456' ...