Linux环境下proc的配置c/c++操作数据库简单示例

摘要:
oracle 11g数据库安装在虚拟机上,我最初想使用c/c++来学习如何操作数据库。结果,我觉得自己陷入了一个大洞。从安装oracle数据库到配置proc的编译选项,我花了两天时间。但我意识到了自己的弱点:1.我不熟练使用Linux命令和脚本。2.我不理解Linux文件夹的作用;(我打算下次再加一个这样的总结博客。)3.我的英语仍然很差。很容易进入真正的话题。既然我介绍了配置,我不想再麻烦了,所以我

  在虚拟机上装了oracle11g数据库,原本想利用c/c++学习操作数据库.结果感觉摊上了一个大坑.从安装好oracle数据库到配置好proc的编译选项整整花了二天.但让我意识到自己自己几点薄弱:1.对Linux的命令和脚本的使用不够熟练.2.对Linux的个文件夹的作用不够了解;(打算下次补充一篇这样的总结博客.)3.英文还是很差劲的我.好入真题.

  由于我引进配置好了,不想在折腾了,所以就没有在重现错误,只是说一下思路和配置文件的内容.

  1.oracle用户根目录下的.bash_profile的作用是:~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc.

  所以先配置.bash_profile文件由于安装目录不同要相应改动.

  

 .bash_profile
  
   # Get the aliases and functions
   if [ -f ~/.bashrc ]; then
           . ~/.bashrc
  fi
   
  # User specific environment and startup programs
  umask 022
  ORACLE_BASE=/u01/
  ORACLE_HOME=$ORACLE_BASE/oracle/
  OACLE_SID=orcl
  PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
  #LANG=C
  export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH LANG
~

  2.还有就是配置precomp/admin文件夹下的pcscfg.cfg主要是加上proc的库文件及oracle的home目录

 sys_include=/u01/precomp/public

sys_include=/u01/oracle
sys_include=/usr/include
sys_include=/u01/oracle/lib/
code=cpp
cpp_suffix=cc
parse=none

 ORACLE_BASE=/u01/
 ORACLE_HOME=$ORACLE_BASE/oracle/
 export ORACLE_BASE ORACLE_HOME

 

 

  3.oracle数据的启动和关闭

  sqlplus /scott/password
  startup                      --启动数据库
  shutdown immediate   --关闭数据库
 
  4.启动监听
  lsnrctl

  5.proc编译.pc文件
  proc dm01_hello.pc
  Pro*C/C++: Release 11.2.0.1.0 - Production on Tue Oct 11 11:20:50 2016
  Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
  System default option values taken from: /u01/oracle/precomp/admin/pcscfg.cfg

  6.编译生成的.cc文件  记得加上相应的头文件路径之后工程化编写可写成makefile的形式

  g++ dm01_hello.cc -o  dm01_hello -I /u01/oracle/precomp/public/ -L /u01/oracle/lib/ -lclntsh

  相应的dm01_hello.pc文件

#include <stdio.h>
#include <string.h>
#include <string.h>
#include "sqlca.h"

EXEC SQL BEGIN DECLARE SECTION;
char *serverid = "scott/000110@orcl";
EXEC SQL END DECLARE SECTION; 

int main()
{
        int ret  = 0;
        printf("hello....
");
        printf("serverid:%s 
", serverid);
        EXEC SQL connect :serverid; 
        if (sqlca.sqlcode != 0)
        {
                ret = sqlca.sqlcode;
                printf("EXEC SQL connect:err, %d
", ret);
                return ret;
        }
        printf("connect ok
");
        return ret;
}

  7.结果: 

  [oracle@disdader day3]$ ./dm01_hello
  hello....
  serverid:scott/000110@orcl
  connect ok

  

免责声明:文章转载自《Linux环境下proc的配置c/c++操作数据库简单示例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块网站日志流量分析系统之数据清洗处理(离线分析)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux| |对于UDP的学习

# 前序 UDP(用户数据报协议)没有连接的,是面向数据报的,是不可靠 # 套接字就是IP地址+端口号 IP地址:4字节 端口号:2字节,也就是说范围是0~65536 端口号分为 知名端口号 0--1023:http,ssh,ftp,telnet等一些协议端口号都是固定的,对于操作系统来说是不能对其进行分配的 一些固定的端口号 ssh服务器,使用22端口...

linux进程状态详解(转)

  Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。  在下文将对进程的 R、S、D、T、Z、X 六种状态做个说明。 PROCESS STATE CODES        Here are the different values that the s, stat and state...

数据库SQL SERVER 2008R2 远程连接配置说明

SQL SERVER 2008 R2如何开启数据库的远程连接 环境要求: 首先准备好一台安装好SQL SERVER2008 R2的服务器。(仅适用于SQL SERVER2008 R2版本) 数据库远程建立步骤: 第一部分:在安装SQL Server 2008 R2的计算机上,点击开始 1选择程序中的“Microsoft SQL Server 2008 R2...

Oralce JDBC jar包下载

下载地址:https://pan.baidu.com/s/1sU7gu4biigEAw-3Bu7yIOA 下载包中包括以下文件: ojdbc5.jarojdbc5dms.jarojdbc5dms_g.jarojdbc5_g.jarojdbc6.jarojdbc6dms.jarojdbc6dms_g.jarojdbc6_g.jarsimplefan.jar...

linux 权限命令行 xshell 切换用户

一、 权限命令行 两种方式。 1.1 chown -R 指定的用户名, 权限的文件/文件夹 赋予这个用户的权限读写。 /*1.0 权限命令行 1. chown -R 指定的用户名 权限的文件/文件夹 赋予这个用户的权限读写。 演示 root 用户新建一个 111.TXT文件,touch 111.txt 创建的...

Linux 文件属性

1.在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组 2."d"在Linux中代表该文件是一个目录文件,在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。 当为[ d ]则是目录 当为[ - ]则是文件; 若是[ l ]则表示为链接文档(link file); 若是[ b ]则表示为装置文件里面的可...