Oracle如何直接运行OS命令(下)第1/2页_oracle

正在看的ORACLE教程是:Oracle如何直接运行OS命令(下)。  EXEC SQL WHENEVER SQLERROR CONTINUE;
  sqlglm(msg_buffer, &buffer_size, &msg_length);
  printf("Daemon error while connecting:\n");
  printf("%.*s\n", msg_length, msg_buffer);
  printf("Daemon quitting.\n");
  exit(1);
  } 

  void 
  sql_error() 
  { 
  char msg_buffer[512];
  int msg_length;
  int buffer_size = 512;

  EXEC SQL WHENEVER SQLERROR CONTINUE;
  sqlglm(msg_buffer, &buffer_size, &msg_length);
  printf("Daemon error while executing:\n");
  printf("%.*s\n", msg_length, msg_buffer);
  printf("Daemon continuing.\n");
  } 
  main() 
  { 
  EXEC SQL WHENEVER SQLERROR DO connect_error();
  EXEC SQL CONNECT :uid;
  printf("Daemon connected.\n");

  EXEC SQL WHENEVER SQLERROR DO sql_error();
  printf("Daemon waiting...\n");
  while (1) { 
  EXEC SQL EXECUTE 
  BEGIN 
  /*接收deamon发来的字符*/ 
  :status := DBMS_PIPE.RECEIVE_MESSAGE('daemon');
  IF :status = 0 THEN 
  /*取出字符*/ 
  DBMS_PIPE.UNPACK_MESSAGE(:command);
  END IF;
  END;
  END-EXEC;
  IF (status == 0) 
  { 
  command.arr[command.len] = '\0';
  /*如果是stop,该进程就退出*/ 
  IF (!strcmp((char *) command.arr, "STOP")) 
  { 
  printf("Daemon exiting.\n");
  break;
  } 

  ELSE IF (!strcmp((char *) command.arr, "SYSTEM")) 
  { 
  EXEC SQL EXECUTE 
  BEGIN 
  DBMS_PIPE.UNPACK_MESSAGE(:return_name);
  DBMS_PIPE.UNPACK_MESSAGE(:value);
  END;
  END-EXEC;
  value.arr[value.len] = '\0';
  printf("Will execute system command '%s'\n", value.arr);
  /*运行os命令*/ 
  status = system(value.arr);
  EXEC SQL EXECUTE 
  BEGIN 
  DBMS_PIPE.PACK_MESSAGE('done');
  DBMS_PIPE.PACK_MESSAGE(:status);
  :status := DBMS_PIPE.SEND_MESSAGE(:return_name);
  END;
  END-EXEC;

当前1/2页 12下一页阅读全文

时间: 2024-10-26 15:18:43

Oracle如何直接运行OS命令(下)第1/2页_oracle的相关文章

Oracle如何直接运行OS命令(上)第1/2页_oracle

正在看的ORACLE教程是:Oracle如何直接运行OS命令(上). 在Oracle 8i中,往往会出现要在存储过程中运行操作系统命令的情况.一般来说,利用Oracle Enterprise Manager设定作业时可以达到这个目的.但是由于OEM在设定作业缺 乏灵活性,设定的作业的参数是固定的.在实际应用当中往往需要在SQL语句当中运行需要随时运行操作系统命令.Oracle 8i没有直接运行OS命令的语句,我们可以利用DBMS_PIPE程序包实现这一要求.  DBMS_PIPE通过创建管道,可

java如何运行OS命令(转)

  •javac TestRunTime.java•java TestRunTime hostname // 执行"hostname"Linux命令•即可看到输出   import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; public class TestRunTime { public static void main(String[] args)

Redhat 6.2 下 oracle 11g R2的安装详解第1/2页_oracle

一.配置系统参数 在安装oracle前我们需要对用到的系统参数进行配置 1.修改系统内核参数 修改sysctl.conf文件 在文件/etc/sysctl.conf中添加以下内容: kernel.sem = 250 32000 100 128 kernel.shmall = 2097152 kernel.shmmax = 2147483648     kernel.shmmni = 4096 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.co

Oracle密码文件的使用和维护第1/3页_oracle

正在看的ORACLE教程是:Oracle密码文件的使用和维护. 概要:Oracle关系数据库系统以其卓越的性能获得了广泛的应用,而保证数据库的安全性 是数据库管理工作的重要内容.本文是笔者在总结Oracle数据库安全管理工作的基础上,对Oracle数据库系统密码文件的创建.使用和维护作了详细的介绍,供大家参考.  在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle数据库可以有两种身份验证的方法:即使用与操作系统集成的身份验证或使

Oracle数据库安全策略分析(一)第1/2页_oracle

正在看的ORACLE教程是:Oracle数据库安全策略分析(一). 数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪.围绕数据库的安全性问题提出了一些安全性策略,希望对数据库管理员有所帮助.对于数据库数据的安 全问题,数据库管理员可以参考有关系统双机热备份功能以及数据库的备份和恢复的资料. 一.组和安全性: 在操作系统下建立用户组也是保证数据库安全性的一种有效方法.Oracle程序为了安全性目的一般分为两类:一类所有的用户都可

无法建立xml文件 dos命令下运行出错

问题描述 无法建立xml文件 dos命令下运行出错 我按照书上的代码敲进eclipse,没报错,代码没问题,这个代码的功能是在同目录下建立一个与该java文件同名的xml文件,xml文件里输入了相关数据,但是运行后没反应,本地没生成该xml文件,浴室dos命令运行该java文件,javac编译通过,可是java时却"F:eclipseWorkSpacexmlupdatesrcxmlupdate>java cratexml错误: 找不到或无法加载主类 cratexml F:eclipseWo

centos下,java自动运行telnet命令提示ctrl+],没法进入服务器

问题描述 centos下,java自动运行telnet命令提示ctrl+],没法进入服务器 我要开发一个java控制台程序,运行在centos 6.4的mini版下.运行的时候会自动输入telnet命令完成一个网络设备的控制. public static void main(String[] args) { String[] cmds =new String[]{"telnet 192.168.1.100 80", "ctrl+]"}; } private stat

os-有人在OS X下过搞数据库吗?

问题描述 有人在OS X下过搞数据库吗? 用OS X下工作过?捣鼓过的?分享下呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 Mac OS X广泛支持各种数据库,从轻量的Sqlite到MySQL.Oracle它都支持,如果运行VBox,还可以支持MS SQL Server.Mac OS X和Linux都是UNIX Like的系统,具有类似的命令和操作方式,所以适用于Linux的操作方法也基本适用Mac OS X. MySQL是一种应用广泛并且免费的数

如何直接在浏览器内运行SQL命令

浏览器 本文示范了如何用一个Java Servlet.一个JSP页面和一个静态Java类构造出一个SQL网关应用.利用这个应用,你可以直接在浏览器内执行SQL命令,浏览器将把SQL命令提交给远程服务器上的数据库系统,然后返回结果. 如果你正在使用ISP(Internet Service Provider)提供的数据库,可能已经熟悉SQL网关应用的概念了.有的ISP会提供一个操作数据库的HTML页面,就象本文提供的网关应用一样.如果ISP没有提供这样的界面,你可以把本文的程序上载到服务器,以后要访