一回も披露したことのない豆知識

select view_name, text from user_views;

で、text部分のSELECT文が途中で切れて出力されてしまうのですが、全てのSELECT文が表示されるようにするにはどのようにすれば宜しいでしょうか?

A 回答 (3件)

お答えします



たしかに、Viewのソースを確認するのは、とってもムズイです。
dba_sourceから、Procedureなどのソースは簡単に出せるのに、
どうして、Viewだけは、ソースを簡単に出せないのでしょうね・・・

◆ 実際にやってみます

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production


SQL> select view_name, text from user_views
2 where rownum = 1;

VIEW_NAME
------------------------------
TEXT
--------------------------------------------------------------------------------
AQ$DEF$_AQCALL
SELECT q_name QUEUE, msgid MSG_ID, corrid CORR_ID, priority MSG_PRIORITY, decode

◆ 確実に切れてますね。

LONG型である、TEXTをたくさん表示しまます

set long 20000

を行います。

SQL> set long 20000

で、もう一度同じSelect文を実行します

SQL> /

VIEW_NAME
------------------------------
TEXT
--------------------------------------------------------------------------------
AQ$DEF$_AQCALL
SELECT q_name QUEUE, msgid MSG_ID, corrid CORR_ID, priority MSG_PRIORITY, decode
(state, 0, 'READY',
1, 'WAIT',
2, 'PROCESSED',
3, 'EXPIRED',
10, 'BUFFERED_EXPIRED') MSG_STATE, cast(FROM_TZ
(delay, '-08:00')
at time zone sessiontimezone as date) DELAY, delay DELAY_TIMES
TAMP, expiration, cast(FROM_TZ(enq_time, '-08:00')
at time zone sessiontimezone as date) ENQ_TIME, cast(FROM_TZ(e
nq_time, '-08:00')
at time zone sessiontimezone as timestamp)
ENQ_TIMESTAMP, enq_uid ENQ_USER_ID, enq_tid ENQ_TXN_ID, cast(F
ROM_TZ(deq_time, '-08:00')
at time zone sessiontimezone as date) DEQ_TIME, cast(FROM_TZ(d
eq_time, '-08:00')
at time zone sessiontimezone as timestamp)
DEQ_TIMESTAMP, deq_uid DEQ_USER_ID, deq_tid DEQ_TXN_ID, retry_
count, decode (state, 0, exception_qschema,
1, exception_qschema,
2, exception_qschema,
NULL) EXCEPTION_QUEUE_OWNER, decode (state, 0
, exception_queue,
1, exception_queue,
2, exception_queue,
NULL) EXCEPTION_QUEUE, user_data, decode (st
ate, 3,
decode (deq_tid, 'INVALID_TRANSACTION', NULL,
exception_queue), NULL)
ORIGINAL_QUEUE_NAME, decode (state, 3,
decode (deq_tid, 'INVALID_TRANSACTION', NULL,
exception_qschema), NULL)
ORIGINAL_QUEUE_OWNER, decode(state, 3,
decode(deq_time, NULL,
decode(deq_tid, NULL,
decode (expiration , NULL , 'MAX_RETRY_EXCEEDED',
'TIME_EXPIRATION'),
'INVALID_TRANSACTION', NULL,
'MAX_RETRY_EXCEEDED'), NULL), NULL)
EXPIRATION_REASON FROM "DEF$_AQCALL" WHERE state !
= 7 AND state != 9 WITH READ ONLY


でました。

Your DBA MOTO:TAKER
    • good
    • 0
この回答へのお礼

ご連絡いただいた方法で出来ました。
ありがとうございます。

お礼日時:2009/09/28 10:16

LONG型の内容を全て表示させたいのなら、


「set LONG 99999」
を実施するとできるかと。
    • good
    • 0
この回答へのお礼

ご連絡いただいた方法で出来ました。
ありがとうございます。

お礼日時:2009/09/28 10:16

sqlplus?



set linesizeやcolumn format等で出力書式を変えてみては。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報