好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > oracle中print_table存儲過程實例介紹

oracle中print_table存儲過程實例介紹

熱門標簽:海南400電話哪里辦理 貴陽電話外呼系統哪家好 濟南地圖標注公司 南寧人工智能電銷機器人費用 安陽外呼系統免費 分布式呼叫中心 400電話是不是免費申請 呼倫貝爾智能手機地圖標注 圖像地圖標注

定義

所謂存儲過程(Stored Procedure),就是一組用于完成特定數據庫功能的SQL語句集,該SQL語句集經過
編譯后存儲在數據庫系統中。在使用時候,用戶通過指定已經定義的存儲過程名字并給出相應的存儲過程參數
來調用并執行它,從而完成一個或一系列的數據庫操作。

一直以來,覺得MySQL中使用\G參數改變輸出結果集的顯示方式非常好用,尤其是在命令行界面。但是ORACLE數據庫沒有這個功能,今天在搜索到Tom大師的一篇博文時,發現大師用一個存儲過程print_table實現了類似這樣的功能。只是我們這些凡夫俗子不知道而已,特意整理在此,方便自己或有需要的人以后查看。 

CREATE OR REPLACE PROCEDURE print_table(p_query IN VARCHAR2) 
AUTHID CURRENT_USER 
IS 
 l_thecursor INTEGER DEFAULT dbms_sql.open_cursor; 
 l_columnvalue VARCHAR2(4000); 
 l_status  INTEGER; 
 l_desctbl  dbms_sql.desc_tab; 
 l_colcnt  NUMBER; 
BEGIN 
 EXECUTE IMMEDIATE 'alter session set nls_date_format=''dd-mon-yyyy hh24:mi:ss'' '; 
 
 dbms_sql.parse(l_thecursor, p_query, dbms_sql.native); 
 
 dbms_sql.describe_columns (l_thecursor, l_colcnt, l_desctbl); 
 
 FOR i IN 1 .. l_colcnt LOOP 
  dbms_sql.define_column (l_thecursor, i, l_columnvalue, 4000); 
 END LOOP; 
 
 l_status := dbms_sql.EXECUTE(l_thecursor); 
 
 WHILE ( dbms_sql.Fetch_rows(l_thecursor) > 0 ) LOOP 
  FOR i IN 1 .. l_colcnt LOOP 
   dbms_sql.column_value (l_thecursor, i, l_columnvalue); 
 
   dbms_output.Put_line (RPAD(L_desctbl(i).col_name, 30) 
         || ': ' 
         || l_columnvalue); 
  END LOOP; 
 
  dbms_output.put_line('-----------------'); 
 END LOOP; 
 
 EXECUTE IMMEDIATE 'alter session set nls_date_format=''dd-MON-rr'' '; 
EXCEPTION 
 WHEN OTHERS THEN 
    EXECUTE IMMEDIATE 
    'alter session set nls_date_format=''dd-MON-rr'' '; 
 
    RAISE; 
END; 
/

如下測試所示:

SQL> set serveroutput on size 99999;
SQL> execute print_table('select * from v$session where sid=997');
SADDR       : 000000085FA35CA0
SID       : 997
SERIAL#      : 1
AUDSID      : 0
PADDR       : 000000085F6B7E70
USER#       : 0
USERNAME      :
COMMAND      : 0
OWNERID      : 2147483644
TADDR       :
LOCKWAIT      :
STATUS      : ACTIVE
SERVER      : DEDICATED
SCHEMA#      : 0
SCHEMANAME     : SYS
OSUSER      : oracle
PROCESS      : 5036
MACHINE      : xxxx
PORT       : 0
TERMINAL      : UNKNOWN
PROGRAM      : oracle@xxxxx (DBW0)
TYPE       : BACKGROUND
SQL_ADDRESS     : 00
SQL_HASH_VALUE    : 0
SQL_ID      :
SQL_CHILD_NUMBER    : 0
PREV_SQL_ADDR     : 00
PREV_HASH_VALUE    : 0
PREV_SQL_ID     :
PREV_CHILD_NUMBER    : 0
PLSQL_ENTRY_OBJECT_ID   :
PLSQL_ENTRY_SUBPROGRAM_ID  :
PLSQL_OBJECT_ID    :
PLSQL_SUBPROGRAM_ID   :
MODULE      :
MODULE_HASH     : 0
ACTION      :
ACTION_HASH     : 0
CLIENT_INFO     :
FIXED_TABLE_SEQUENCE   : 0
ROW_WAIT_OBJ#     : -1
ROW_WAIT_FILE#    : 0
ROW_WAIT_BLOCK#    : 0
ROW_WAIT_ROW#     : 0
LOGON_TIME     : 04-jul-2018 21:15:52
LAST_CALL_ET     : 5272838
PDML_ENABLED     : NO
FAILOVER_TYPE     : NONE
FAILOVER_METHOD    : NONE
FAILED_OVER     : NO
RESOURCE_CONSUMER_GROUP  :
PDML_STATUS     : DISABLED
PDDL_STATUS     : DISABLED
PQ_STATUS      : DISABLED
CURRENT_QUEUE_DURATION  : 0
CLIENT_IDENTIFIER    :
BLOCKING_SESSION_STATUS  : NO HOLDER
BLOCKING_INSTANCE    :
BLOCKING_SESSION    :
SEQ#       : 34697
EVENT#      : 3
EVENT       : rdbms ipc message
P1TEXT      : timeout
P1       : 300
P1RAW       : 000000000000012C
P2TEXT      :
P2       : 0
P2RAW       : 00
P3TEXT      :
P3       : 0
P3RAW       : 00
WAIT_CLASS_ID     : 2723168908
WAIT_CLASS#     : 6
WAIT_CLASS     : Idle
WAIT_TIME      : 0
SECONDS_IN_WAIT    : 107
STATE       : WAITING
SERVICE_NAME     : SYS$BACKGROUND
SQL_TRACE      : DISABLED
SQL_TRACE_WAITS    : FALSE
SQL_TRACE_BINDS    : FALSE
ECID       :
-----------------
PL/SQL procedure successfully completed.
SQL>

參考資料:

https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:1035431863958,%7Bprint_table%7D

總結

以上所述是小編給大家介紹的oracle中print_table存儲過程介紹,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • oracle 存儲過程、函數和觸發器用法實例詳解
  • windows中oracle存儲過程加密的實例代碼
  • Oracle帶輸入輸出參數存儲過程(包括sql分頁功能)
  • Mybatis調用Oracle存儲過程的方法圖文詳解
  • 詳解Oracle調試存儲過程
  • Oracle存儲過程和存儲函數創建方法(詳解)
  • Oracle存儲過程及調用
  • Oracle存儲過程、包、方法使用總結(推薦)
  • Oracle生成單據編號存儲過程的實例代碼
  • Oracle數據庫創建存儲過程的示例詳解

標簽:遼源 涼山 郴州 許昌 合肥 滁州 南充 焦作

巨人網絡通訊聲明:本文標題《oracle中print_table存儲過程實例介紹》,本文關鍵詞  oracle,中,print,table,存儲,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle中print_table存儲過程實例介紹》相關的同類信息!
  • 本頁收集關于oracle中print_table存儲過程實例介紹的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 丁香四月婷婷| 伊人96| 美女跪下吃J8视频在线看麻豆 | 91网曝黑料今日吃瓜| 亚洲欧美日本韩国综合在线观看| 免费看右手视频| 老师用力挺进小雪肉便动视频 | 欧美激情综合一区二区三区| 巨熟乳波霸a∨田中瞳| 欧美精品99无码一区二区三区| 里番ACG??里番本子| 日本肉漫在线观看| 短篇公车高h肉辣全集目录| 日韩福利一区| 欧美无遮挡大尺度视频| 日本欧美大码一区二区免费看 | 男女啪啪激烈无遮挡动态图| 国产日韩在线| 任你躁AV一区二区三区桃花视频 | 一级黄色片片| 国产91精品久久久久久久网曝门 | 一级特黄大片视频| 美女扒开内裤羞羞?网站| 欧美zoosex| 万人嫌阴郁受重生了| 美女厕所尿尿擦逼| 《不戴套的瑜伽教练3》| 亚洲综合久| 美女被免费视频网站a| 韩漫无删减免费网站| 名门嫡姝-213大H慎入| 和表妺洗澡我c了她好几次| 26uuu欧美亚洲日韩偷拍| 精品一久久香蕉国产线看观| 任课老师上课班主任进入| 亚洲AV无码国产一级毛片久久| 精品人妻无码久久| 国模私拍在线视频| 亚洲天堂网| 成人伊人青草久久综合网破解版| 三寡妇偷男人全集|