网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.关于数据库的锁相关问题及其引申.
.Oracle的优化原理.
.oracle数据库备份与恢复 a piece.
.ORACLE培训教程(2)-数据库的安全.
.Oracle 9i在redhat linux as 2.1.
.Oracle Database 10g:闪回版本查.
.Oracle开发人员应该具备的几个资.
.影响Oracle汉字显示的字符集问题.
.神秘的 ORACLE DUAL.
.MobiLink通过Oracle返回下载的数.
.[TIP][OCP 9i] Share my experie.
.Oracle性能究极优化 中.
.有关CBO优化的几个问题.
.日期运用union的一种奇怪现象及解.
.W2k Server下Oracle 9iAS安装报告.
.一步一步教你如何安装Oracle 10g.
.浅谈Oracle中优化SQL的原则.
.ORACLE问题,每天10问(十).
.关于使用SHOW_SPACE().
.LINUX+ORACLE安装和优化注意事项.

Oracle9i中的SQL*Plus

发表日期:2008-2-9



  在Oracle9i中, SQL*Plus现在不仅能接受文件名当作脚本地址,还可以接受HTTP或是FTP地址当作脚本地址来源。举例来说,通过“@http://www.mycorp.com/sql/setup.sql”这条命令就可以从这个网址装载SQL脚本,然后在当前的运行环境下运行。 而“@@”命令能知道它当前正在从一个URL上运行,所以会从相同的位置装载脚本。举例来说,假如上述装载的脚本包含以下代码的话,那么每个SQL脚本将根据给定的URL被装载。
  
  REM - setup script
  @@tables.sql
  @@indexes.sql
  @@code.sql
  
  有些DBA希望集中维护位于一个远程位置并且可以被不同位置的数据库执行的脚本,这对于他们来说是有价值的。这对于那些因没有SQL*Net而不能连接数据库,但能通过HTTP使用脚本的客户是非凡有用的。
  
  通过HTTP协议,脚本可以根据Web服务器的输入参数产生。举例来说,http://www.mycorp.com/cgi-bin/setup.pl?host=bart就将参数host=bart传递给CGI-BIN脚本。SQL *Plus有其单独的参数传递工具。
  
  在脚本被装载之后,这些参数被绑定起来用于定义参数。命令@@tables.sql mytablespace将从相同的相关目录装载“tables.sql”这个脚本,然后mytablespace 将被绑定到SQL * Plus的&1参数上。 对于@URL在功能上有一个差别,那就是.sql扩展是不可选择的
  
  在Oracle8i中模拟@URL
  这个特征的一个缺点就是他似乎不支持HTTP代理。脚本只有通过直接的连接才能够被装载。在Oracle8i中的一个变通的通过使用代理进入或者是模拟这个功能实现的脚本如下:
  
  REM -- http_at.sql
  set feedback off
  set linesize 255
  set serveroutput on size 64000
  set trimspool on
  spool test.sql
  declare
    l_pieces utl_http.Html_pieces;
    l_piece   varchar2(2000);
    l_url varchar2(2048) := '&1';
    l_maxline integer := 255;
    l_index integer;
    l_stub   varchar2(255);
    l_proxy varchar2(2048) := 'proxy.mycomp.com:8000';
  begin
    l_pieces := utl_http.request_pieces(l_url,1000,l_proxy);
    for i in l_pieces.first .. l_pieces.last loop
      l_piece := l_pieces(i);
      while length(l_piece) > l_maxline loop
        l_stub := substr(l_piece,1,l_maxline);
        l_index := length(l_stub);
        while l_index > 0 and substr(l_stub,l_index,1) != chr(10) loop
          l_index := l_index - 1;
        end loop;
        l_stub := substr(l_piece,1,l_index-1);
        l_piece := substr(l_piece,l_index+1);
        dbms_output.put_line(l_stub);
      end loop;
      dbms_output.put_line(l_piece);
    end loop;
  end;
  /
  spool off;
上一篇:Oracle10g SQL*PLUS 的一些特性 人气:654
下一篇:使用Expect和命名管状远程控制SQL*Plus 人气:668
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐