在虚拟机linux 编写proc程序的相关操作

编写 proc 程序都会使用 proc 命令来将.pc文件转换成.c文件,而我们一般使用的 proc 命令在oracle 的安装包中会有。

   在你的虚拟机安装oracle的前提下,其中的全部操作如下:

1  首先开启虚拟机

2  打开oracle的相关服务:(Linux下启动Oracle监听

    1)登录(这儿使用oracle),开启 oracle的监听:lsnrctl start

    2)进入sql 模式:sqlplus /nolog

    3)数据库登录:SQL>:conn system/manager as sysdba;

    4)打开数据库:SQL>:startup      (可执行SQL语句)

    5)若你未创建用户,可以创建一个用户,后面的proc程序中会使用到:

              创建用户:create User username identified by password default tablespace users;

              赋权限: grant connect,resource to username;

              //如果想要撤销权限可以使用:revoke resource from username;

    6)退出sql模式:quit /  exit

3  编写proc程序,以  .pc 为后缀名:

    vi test.pc

              ................

              #include <stdio.h>

              #include <stdlib.h>

              #include <string.h>

              EXEC SQL include sqlca;

              int main()

              {

                          EXEC SQL BEGIN DECLARE SECTION;

                                     char sLogin[20];

                          EXEC SQL END DECLARE SECTION;

                          strcpy(sLogin,"name/password");

                          EXEC SQL CONNECT :sLogin;  

                          if(sqlca.sqlcode)
                          {
                                     fprintf(stderr,"%d 连接数据库出错[%d][%s]",__LINE__,sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
                                     exit(0);
                          }   

                          。。。。。。。。。。。。。。。。

                         return 0;

              }

              ................

4 编译成.c文件:

          proc  test.pc

5 编译

          gcc -L $ORACLE_HOME/lib -l clntsh test.c

6 运行

          ./a.out

7 关闭数据库

    1) lsnrctl stop

    2)  sqlplus  /nolog

    3) shutdown  :

              (1) Normal:需要等待所有的用户断开连接

              (2) Immediate:等待用户完成当前的语句

              (3)Transactional:等待用户完成当前的事务

              (4) Abort:不做任何等待,直接关闭数据库

8 关闭linux系统

    halt  :关闭

    init  0: 关闭

    init  b :重启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值