zoukankan      html  css  js  c++  java
  • Oracle的缓冲区命令

    首先 登陆  sqlplus / as sysdba 进入sql命令

    输入查询命令

    sql> select * from dual;

    这时缓冲区存在了一条sql

    命令:

    1 list (缩写为l命令) 也可以带上数字表示第几行

    SQL> list
      1* select * from dual
    SQL> l
      1* select * from dual

    2 run(缩写为 r或者 /)

    SQL> run
      1* select * from dual
    DU
    --
    X
    SQL> /
    DU
    --
    X
    SQL> r
      1* select * from dual
    DU
    --
    X

    3 edit(缩写为e命令) 

     如果直接输入命令 会自动打开记事本 可以编辑缓冲区 ,输入后保存自动更新缓冲区

        输入ed c:/a.sql  可以修改文件的内容 不涉及缓冲区

    4 clear buffer(缩写为cl buff) 清空缓冲区 

    SQL> clear buffer
    buffer 已清除
    SQL> l
    SP2-0223: SQL 缓冲区中不存在行。

    5 clear scr 

      清空屏幕

    6 save (缩写为sav) 该命令可以将缓冲区的数据保存到文本文件中

    SQL> l
      1* select * from dual
    SQL> save c:/c.sql
    已创建 file c:/c.sql

    7 get 该命令从文件中获取内容到缓冲区

    SQL> clear buff;
    buffer 已清除
    SQL> get c:/a.sql
      1* select * from dual
    SQL> l
      1* select * from dual

    8 start(缩写为 sta或者符号@)命令 该命令 从文件中读取内容到缓冲区并执行  相当于  get命令后 run命令

    SQL> clear buff;
    buffer 已清除
    SQL> l
    SP2-0223: SQL 缓冲区中不存在行。
    SQL> start c:/a.sql
    DU
    --
    X
    SQL> l
      1* select * from dual

    9 append 该命令 追加内容到缓冲区

    SQL> select * from
      2
    SQL> list
      1* select * from
    SQL> append  dual;--这里注意要第一个空格代表命令的空格  第二个空格才表示加入一个空格 所以这里有2个空格才代表一个空格
      1* select * from dual
    SQL> /
    DU
    --
    X

    在演示一个过程的append

    SQL> begin
      2  dbms_output.put_line('hello');   --因为这里没写完 执行肯定报错 只能append追加end;到缓冲区 才能正常执行
      3
      4  /
    begin
    *
    第 1 行出现错误:
    ORA-06550: 第 3 行, 第 0 列:
    PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
    (
    begin case declare end exception exit for goto if loop mod
    null pragma raise return select update while with
    <an identifier> <a double-quoted delimited-identifier>
    <a bind variable> << continue close current delete fetch lock
    insert open rollback savepoint set sql execute commit forall
    merge pipe purge
    SQL> list
      1  begin
      2  dbms_output.put_line('hello');
      3*
    SQL> append end;;  --这里第一个分号表示要追加的分号  最后还要加一个分号表示命令的结束 所以 要两个分号才能代表一个分号
      3* end;
    SQL> /
    hello
    PL/SQL 过程已成功完成。

    这里如果 出现 PL/SQL 过程已成功完成 不输出内容 可以设置  set serveroutput on 打开服务器输出

    10 数字输出命令 直接在sql命令中输入数字 可以将sql缓冲区对应行的sql输出

    SQL> list
      1  begin
      2  dbms_output.put_line('hello');
      3* end;

    此时缓冲区中存在3行数据 

    SQL> 1
      1* begin
    SQL> 2
      2* dbms_output.put_line('hello');
    SQL> 3
      3* end;
    SQL> 4
    SP2-0226: 行号  无效

    11 change命令(缩写为 c)  可以将某一行的字符串替换成某个字符串 这里 可以使用(!被替换的字符串!替换的字符串!) 或者使用(被替换的字符串/替换的字符串)

    例如 将如上hello替换成helloworld 首先知道他在第二行 切换到第二行修改

    SQL> 2
      2* dbms_output.put_line('hello');
    SQL> change !hello!helloworld!
      2* dbms_output.put_line('helloworld');

    改回来

    SQL> 2
      2* dbms_output.put_line('helloworld');
    SQL> change /helloworld/hello
      2* dbms_output.put_line('hello');

    12 del命令  可以用于删除sql缓冲区中某一行的数据

    SQL> l
      1  begin
      2  dbms_output.put_line('ggg');
      3  end;
      4
      5*
    SQL> del    --这里如果不带参数 就表示删除最后一行
    SQL> l
      1  begin
      2  dbms_output.put_line('ggg');
      3  end;
      4*

    SQL> del 2   --这里带上参数 表示删除第几行
    SQL> list
      1  begin
      2  end;
      3*

    13 input命令  用于换行写入到sql缓冲区中  和append的区别  在于  apppend是在缓冲区的最后一行追加  input会重新创建一行 并且写入

    SQL> list
      1  begin
      2* dbms_output.put_line('ggg');
    SQL> input   --这里输入命令后 下面的内容可以接受输入
      3  end;
      4  /
    ggg

    PL/SQL 过程已成功完成。
    SQL> list
      1  begin
      2  dbms_output.put_line('ggg');
      3* end;


  • 相关阅读:
    TCP的发送系列 — 发送缓存的管理(二)
    TCP的发送系列 — 发送缓存的管理(一)
    TCP的发送系列 — tcp_sendmsg()的实现(二)
    TCP的发送系列 — tcp_sendmsg()的实现(一)
    YTU 2618: B 求类中数据成员的最大值-类模板
    YTU 2617: B C++时间类的运算符重载
    YTU 2616: A代码完善--简易二元运算
    YTU 2615: AB编程题--世界杯小组赛
    YTU 2614: A代码完善--系统日期
    YTU 2611: A代码完善--向量的运算
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331252.html
Copyright © 2011-2022 走看看