[20190531]如何實現與執行.txt
[20190531]如何實現與執行.txt
--//連結
--//我的提問:
How to realize the execution?
SQL> select * from user_scheduler_jobs
2 @pr
--//實在搞不懂如何實現這樣的功能?以前也在itpub上問過,連結如下:
--//http://www.itpub.net/thread-2108426-1-1.html
--//實際上Here is the pr.sql script. It came from Tanel Poder via an AskTOM original
--//原來在Tanel Poder的網站就有.
--//修改程式碼如下,注意開頭的點可不是多餘的.注意_pr_tmpfile指向的目錄必須存在.
--//實際上就是利用sqlplus的編輯功能插入sql語句到中間。注意_pr_tmpfile=d:\tmp\pr.out目錄一定要存在.
===========prxx.sql
.
set termout off
def _pr_tmpfile=d:\tmp\pr.out
store set &_pr_tmpfile.set replace
set termout on
set serverout on size 1000000 termout off echo off
save &_pr_tmpfile replace
set termout on
0 c clob := q'\
0 declare
999999 \';;
999999 l_theCursor integer default dbms_sql.open_cursor;;
999999 l_columnValue varchar2(4000);;
999999 l_status integer;;
999999 l_descTbl dbms_sql.desc_tab;;
999999 l_colCnt number;;
999999 begin
999999 dbms_sql.parse( l_theCursor, c, dbms_sql.native );;
999999 dbms_sql.describe_columns( l_theCursor, l_colCnt, l_descTbl );;
999999 for i in 1 .. l_colCnt loop
999999 dbms_sql.define_column( l_theCursor, i,
999999 l_columnValue, 4000 );;
999999 end loop;;
999999 l_status := dbms_sql.execute(l_theCursor);;
999999 while ( dbms_sql.fetch_rows(l_theCursor) > 0 ) loop
999999 dbms_output.put_line( '==============================' );;
999999 for i in 1 .. l_colCnt loop
999999 dbms_sql.column_value( l_theCursor, i,
999999 l_columnValue );;
999999 dbms_output.put_line
999999 ( rpad( l_descTbl(i).col_name,
999999 30 ) || ': ' || l_columnValue );;
999999 end loop;;
999999 end loop;;
999999 exception
999999 when others then
999999 dbms_output.put_line(dbms_utility.format_error_backtrace);;
999999 raise;;
999999 end;;
/
set termout off
@&_pr_tmpfile.set
get &_pr_tmpfile nolist
host del &_pr_tmpfile
set termout on
===========
--//方法1:
select * from v$database ;
--//首先執行1次,然後執行
@ prxx
--//方法2:
select * from v$database
@ prxx
--//另外在家裡12c上測試遇到1個問題,順便做一個記錄:
SCOTT@test01p> @ ver1
PORT_STRING VERSION BANNER CON_ID
-------------------- ---------- ---------------------------------------------------------------------------- ------
IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
SCOTT@test01p> show release
release 1202000100
SCOTT@test01p> select * from emp where rownum<=12
2 @ prxx
PL/SQL procedure successfully completed.
--//沒有輸出,不大可能是dbms_output輸出快取不足.
SCOTT@test01p> select * from emp where rownum<=11
2 @prxx
=============
EMPNO : 7369
ENAME : SMITH
JOB : CLERK
MGR : 7902
HIREDATE : 1980-12-17 00:00:00
SAL : 800
COMM :
DEPTNO : 20
...
============
EMPNO : 7876
ENAME : ADAMS
JOB : CLERK
MGR : 7788
HIREDATE : 1987-05-23 00:00:00
SAL : 1100
COMM :
DEPTNO : 20
PL/SQL procedure successfully completed.
--//我的測試輸出僅僅小於等於100行有輸出.
SYS@test> select rownum from dual connect by level<=50
@ prxx
--//有輸出.
--//如果註解====那行的輸出
999999 dbms_output.put_line( '=================' );;
為
999999 --dbms_output.put_line( '=================' );;
SYS@test> select rownum from dual connect by level<=101
2 @ prxx
PL/SQL procedure successfully completed.
--//沒有輸出,如果level<=100有輸出.我估計是bug.上班在11g的sqlplus測試就清楚了.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2646525/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20190531]建立job與commit.txtMIT
- [20190531]Timestamp Oddity.txt
- [20190219]xargs -P實現並行執行.txt並行
- [20221018]本地執行與遠端執行.txt
- [20190531]ORA-600 kokasgi1故障模擬與恢復.txt
- [20190531]lob型別pctversion 和 retention.txt型別
- 如何實現多執行緒執行緒
- [20210507]如何實現.txt
- JavaScript如何實現多執行緒?JavaScript執行緒
- [20190531]ORA-600 kokasgi1故障模擬與恢復(後續).txt
- [20190111]執行計劃走位與.txt
- Java中如何實現執行緒呢?Java執行緒
- Java 執行緒池中的執行緒複用是如何實現的?Java執行緒
- [20210828]如何實現2.txt
- [20210904]如何實現3.txt
- [20231210]執行計劃與繫結變數.txt變數
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- [20180928]如何能在11g下執行.txt
- 雲伺服器執行如何實現的原理伺服器
- [20181120]toad看真實的執行計劃.txt
- 執行緒池的原理與C語言實現執行緒C語言
- ManualResetEvent實現執行緒的暫停與恢復執行緒
- RxJava 是如何實現執行緒切換的(下)RxJava執行緒
- [20220927]如何實現sqlcl的repeat功能.txtSQL
- 啃碎併發(六):Java執行緒同步與實現Java執行緒
- join、volatile、newSingleThreadLatch 實現執行緒順序執行thread執行緒
- [20230204]執行很慢的分析.txt
- java執行緒實現方式Java執行緒
- 執行緒池的實現執行緒
- 如何使用queue模組實現多執行緒爬蟲執行緒爬蟲
- python多執行緒中訊息佇列如何實現?Python執行緒佇列
- [20210114]toad檢視真實執行計劃問題.txt
- 利用訊號量實現執行緒順序執行執行緒
- [20210926]並行執行計劃疑問.txt並行
- 執行緒池原理與實踐執行緒
- [20190111]執行計劃bitmap and.txt
- [20231012]奇怪的執行時長.txt
- [20230508]crack oracle執行檔案.txtOracle