网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > Oracle9i中的SQL*Plus  

Oracle9i中的SQL*Plus

2004-05-15  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  在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有其单独的参数传递工具。 网管论坛bbs_bitsCN_com
  
  在脚本被装载之后,这些参数被绑定起来用于定义参数。命令@@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); 网管u家u.bitsCN.com
    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;
TAGs   脚本   装载   SQL   l_piece   参数   通过   命令   substr    
 上一篇:使用Expect和命名管状远程控制SQL*Plus   下一篇:Oracle10g中新的SQLoptimizerhints
相关文章列表
Oracle9i中的SQL*Plus 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.PL/SQL - 嵌套游标 cursor-PLSQL
2.用一个实例讲解Oracle数据库的PL/SQL语句
3.PL/SQL----触发器-PLSQL
4.mysql存储过程写法—动态参数运用-PLSQL
5.PL/SQL Developer导出分区索引脚本-PLSQL
6.PL/SQL collection— table() 函数-PLSQL
7.SQL Server 2005 中的架构与用户-PLSQL
8.Oracle数据库维护常用SQL语句集合(2)-P
9.Oracle数据库维护常用SQL语句集合(3)-P
10.再议SQL Server临时表和表变量-PLSQL
最新推荐文章:
1.与数据库无关的处理放到数据库以外来实现
2.Oracle 10g第2版新特性之SQL和PL/SQL
3.通过PL/SQL访问Web Services
4.菜鸟学oracle - 用PL/SQL画直方图
5.重新编译PLSQL中无效对象或指定对象
6.Oracle高级技巧
7.深入了解Oracle 10g新的多重集运算符
8.在SQL中删除重复记录(多种方法)
9.Oracle:PL/SQL中怎样使用Array
10.数据库手册:速查Oracle函数列表
网管论坛交流:
·大家来开心一下吧---看了会很开心的东西-
·中国人不可不知道的知识
·@@小鹏◎◎小鹏同志与某位女明星亲密接触
·◎◎小鹏◎◎发现不明生物,居然正在交配
·[图文]^^^版主是什么?????
·泡论坛的女人是好女人
·做个“水性杨花”的女人
·献给mm俱乐部的所有mm
·深圳一集团企业电脑基础应用培训教程
·■■■■十一遊玩照■■■■■