DBMS_OUTPUT被稱為內置包,它使我們能夠顯示輸出,調試信息,並從PL/SQL塊,子程序,包,觸發器發送消息。
示例:BEGIN dbms_output。put_line (user || '數據庫中的教師:');dbms_output.put_line(t.table_name);結束循環;結束;/
Datetime數據類型和函數
Datetime數據類型如下:
- 日期
此數據類型以字符和數字數據類型存儲日期和時間信息。它由世紀、年、月、日、小時和秒等信息組成。
- 時間戳
這是DATE的擴展數據類型。它存儲DATE數據類型的年、月和日,包括小時、分鍾和秒值。這在存儲精確的時間值時非常有用。
- 帶時區的Yimestamp
這是TIMESTAMP的變體,在值中包含時區區域名或偏移量。Offset是本地時間和UTC之間的差值,UTC的單位是小時和分鍾。它對於收集和評估所有地理區域的數據信息非常有用。
- 帶有本地時區的時間戳
這也是時區的一種變體,其值涉及時區偏移。
下麵是Datetime函數:
- ADD_MONTHS (x, y);- x加y個月。
- LAST_DAY (x);-返回本月的最後一天。
- MONTHS_BETWEEN (x, y);-這是x和y之間的月數。
- NEXT_DAY (x,天);-返回x之後第二天的日期時間。
- NEW_TIME;-返回程序員指定的時間/天值。
- ROUND(c[,單位]);-它舍入給定的c。
- SYSDATE ();-返回當前係統日期。
- TRUNC(x [, unit]);-此數據類型截斷x。
下麵是時間戳函數。
- CURRENT_TIMESTAMP ();-返回一個TIMESTAMP WITH TIME ZONE,包含當前會話時間和時區。
- EXTRACT({YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} | {TIMEZONE_HOUR | TIMEZONE_MINUTE} | {TIMEZONE_REGION |} TIMEZONE_ABBR) FROM x)——從x中提取並返回年、月、日、月、秒或時區。
- FROM_TZ (x, time_zone);-將TIMESTAMP x和time_zone指定的時區轉換為TIMESTAMP WITH TIMEZONE
- LOCALTIMESTAMP ();-這給了我們包含會話時區的本地時間的TIMESTAMP。
- SYSTIMESTAMP ();-返回包含當前數據庫時間的TIMESTAMP WITH TIME ZONE。
- SYS_EXTRACT_UTC (x);-將TIMESTAMP WITH TIMEZONE x轉換為包含UTC時間和日期的時間戳。
- TO_TIMESTAMP (x,【格式】);-將字符串x轉換為TIMESTAMP。
- TO_TIMESTAMP_TZ (x,【格式】);-將字符串x轉換為TIMESTAMP WITH TIME ZONE。
間隔數據類型和函數
下麵給出了區間數據類型:
- 年到月的間隔
它使用YEAR和MONTH datetime字段存儲一段時間。
- 間隔天到秒
間隔功能:
- NUMTODSINTERVAL (x, interval_unit);-這將數字x轉換為間隔天到秒。
- NUMTOYMINTERVAL (x, interval_unit);-將數字x轉換為年到月的間隔。
- TO_DSINTERVAL (x);-將字符串轉換為間隔天到秒。
- TO_YMINTERVAL (x);-將字符串轉換為年到月的間隔。
示例:SELECT SYSDATE FROM DUAL;輸出:09/30/2021 7:12:34 SELECT LOCALTIMESTAMP FROM DUAL;輸出:09/30/2021 7:12:54.336000
DBMS_OUTPUT子程序
- DBMS_OUTPUT.DISABLE;—禁用消息輸出。
- DBMS_OUTPUT。ENABLE(buffer_size IN INTEGER DEFAULT 2000);—啟用消息輸出。
- DBMS_OUTPUT。GET_LINE(line OUT VARCHAR2, status OUT INTEGER)——該方法檢索一行緩衝信息。
- DBMS_OUTPUT.NEW_LINE;-該方法放置一個行結束標記。
- DBMS_OUTPUT。PUT(item IN VARCHAR2);-該方法在緩衝區中放置部分線。
- DBMS_OUTPUT。PUT_LINE(item IN VARCHAR2) -該方法在緩衝區中放置一行。
例如:聲明行dbms_output.chararr;num_lines數量;啟動緩衝區,默認大小為20000 dbms_output.enable;dbms_output。put_line('你好,歡迎來到偉大的學習!');beplay2018官网dbms_output。put_line('希望您喜歡教程!');dbms_output。put_line('有一個快樂的學習');Num_lines:= 3; dbms_output.get_lines(lines, num_lines); FOR i IN 1..num_lines LOOP dbms_output.put_line(lines(i)); END LOOP; END; / Output: Hello welcome to great learning! Hope you have enjoyed the tutorials! Have a happy learning! PL/SQL procedure successfully completed