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

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

  DBMS_PIPE通过创建管道,可以让至少两个进程进行通信。Oracle的管道与操作系统的管道在概念上有相同的地方,但是在实现机制不同。

  下面介绍实现具体步骤: 

  1、创建一个程序包,姑且起名叫DAEMON,SQL语句如下: 

  /*创建daemon程序包*/ 
  CREATE OR REPLACE PACKAGE BODY daemon AS 
  /*execute_system是实现运行os命令的函数*/ 
  FUNCTION execute_system(command VARCHAR2, 
  timeout NUMBER DEFAULT 10) 
  RETURN NUMBER IS 

  status NUMBER;
  result VARCHAR2(20);
  command_code NUMBER;
  pipe_name VARCHAR2(30);
  BEGIN 
  pipe_name := DBMS_PIPE.UNIQUE_SESSION_NAME;
  DBMS_PIPE.PACK_MESSAGE('SYSTEM');
  DBMS_PIPE.PACK_MESSAGE(pipe_name);
  DBMS_PIPE.PACK_MESSAGE(command);
  /*向daemon管道发送表示命令的字符*/ 
  status := DBMS_PIPE.SEND_MESSAGE('daemon', timeout);
  IF status <> 0 THEN 
  RAISE_APPLICATION_ERROR(-20010, 
  'Execute_system: Error while sending. Status = ' || status);
  END IF;

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

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

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

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 qu

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

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

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)

Oracle性能究极优化 上第1/2页_oracle

正在看的ORACLE教程是:Oracle性能究极优化 上. Linux Journal 发表了一篇优化 Oracle 数据库的文章,感觉十分的有用.简要介绍其摘要和大家共同分享 Linux 在企业级数据库上应用. 目前,HP,Compaq,Dell,IBM 以及 Oracle 都在加快速度拥抱 Linux ,这个开放源码的操作系统.根据 eWeek 的统计,去年 Linux 服务器的销售量大约占据了 Compaq 的 30%,Dell 的 13.7%,IBM 的 13.5%.而且 IBM 200

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/2页_oracle

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

使用PPA在Elementary OS &#039;Luna&#039;上安装Oracle Java 7

问题: 我该如何在 Elemetary OS Luna 上安装Oracle Java 7? 回答: 在 Elementary OS Luna 安装 Java 7 的步骤如下: 由于Elementary OS是基于Ubuntu,所以我们允许使用具有多种Java包的WEPUD8 PPA. 打开终端. 运行以下指令添加Java的PPA到你的软件仓: $ sudo add-apt-repository ppa:webupd8team/java You are about to add the follo

如何在Mac OS X上安装 Ruby运行环境

对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境. 此安装方法同样适用于产品环境!系统需求首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用: Mac OS X 任意 Linux 发行版本(Ubuntu,CentOS, Redhat, ArchLinux ...) 强烈新手使用 Ubuntu 省掉不必要的麻烦!以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括

为什么我们不允许非root用户在CentOS、Fedora和RHEL上直接运行Docker命令

本文讲的是为什么我们不允许非root用户在CentOS.Fedora和RHEL上直接运行Docker命令,[编者的话]容器技术最大的弱点是安全性不足,Docker也不例外.因此,如何加强Docker的安全性是每一个Docker用户必须慎重考虑的问题.这篇文章介绍了不用sudo而直接运行Docker命令所存在的安全漏洞,并强烈建议通过设置sudo规则作为暂时的解决方法. 我经常会收到用户反馈的Bug,他们问我们『为什么默认情况下不能使用非root用户直接运行Docker命令』. Docker能够将