zoukankan      html  css  js  c++  java
  • 试玩了plsql中test窗口declare声明变量|lpad函数||plsql sql command test window区别|

    在这里先感谢一下itpub高手的帖子答复

    Q:

    看到的oracle中的for循环or i in 1..100 loop,i都是从1,2,3这样递增的,可是我这里需要i从01,02,03这样递增,9开始是09,10,11,12.
    请问这样的for循环怎么写。
    具体问题可见http://www.itpub.net/thread-1620912-1-1.html,我想在触发器中加入循环变量,精简我的触发器长度。
    ps:我是新手,谢谢大家的帮助

    A:

    lpad('tech', 7);        would return ' tech'

    lpad('tech', 2);        would return 'te'

    lpad('tech', 8, '0');        would return '0000tech'

    lpad('tech on the net', 15, 'z');        would return 'tech on the net'

    lpad('tech on the net', 16, 'z');        would return 'ztech on the net'

    每次看到itpub的答复都很激动,一个恢复解决问题。

    lpad函数说明

    语法格式如下:

     

      lpad( string, padded_length, [ pad_string ] )

     

      string

     

      准备被填充的字符串;

     

      padded_length

     

      填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

     

      pad_string

     

      填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。 

    下面说plsq中的块。

    经常看到有人和书上直接写declare,也不在触发器或者存储过程中,可是照样使用,比如:http://zhidao.baidu.com/question/113921713.html

    1,我刚开始直接在plsql中的查询窗口sql window使用,报错:

    13:51更新:

    sql windows窗口也是可以显示的,在第二列就是output,仅仅select不行

     

    2,想到在测试窗口test window,通过(需要点击左上角的start debugger按钮,然后点击run)

    -- Created on 2012-6-13 by DELL 
    declare 
      -- Local variables here
      i number;
    begin
      -- Test statements here
      for i in 1..100 loop
        dbms_output.put_line(lpad(i,2,'0'));
        end loop;
    end;

    下面是结果

     拓展:

    1 Command window实现了SQL*Plus的所有功能,允许运行sql*plus命令,sql命令,sql脚本。
    2 SQL window用于执行sql语句,显示sql输出,执行统计信息。(测试sql语句,查看表中的数据,更新数据)
      例如 desc table(查看表结构)不能在SQL window中执行,必须在Command window中才能执行。

    3 Program window中创建一个存储过程(或者直接在plsql左边对应的procedures和trigger右键新建),如下:

    create or replace procedure TEST is
    begin
    DBMS_SESSION.set_nls('NLS_DATE_FORMAT','''YYYY-MM-DD HH24:MI:SS''');
    DBMS_OUTPUT.PUT_LINE('HelloWorld!');
    DBMS_OUTPUT.put_line(SYSDATE);
    end TEST;

    需要注意,SET_NLS的第二个参数VALUE
    输入的值除了需要的格式外,还需要包含引号,否则会引发错误(选项缺失或无效)
    在Command window中执行(或者在Test window中测试),如下:
    set   serveroutput   on
    exec TEST();
    或者begin
      2  test();
      3  end;
      4  / ......

  • 相关阅读:
    [网络流24题]方格取数
    [网络流24题]太空飞行计划
    网络流24题题解合集【不定期更新】【附常见套路分析】
    【优先队列】POJ3614-Sunscreen
    【优先队列】POJ1442-Black Box
    【Huffman树贪心+优先队列】POJ3253-Fence Repair
    【优先队列+贪心】POJ2431-Expedition
    【专题笔记】优先队列和堆
    【动态规划】POJ1664-放苹果
    【动态规划+二分查找】POJ2533&POJ1631最长上升子序列(LIS)
  • 原文地址:https://www.cnblogs.com/sumsen/p/2547512.html
Copyright © 2011-2022 走看看