为什么TOAD和SQLPlus的结果不同?

时间:2014-10-09 07:24:41

标签: oracle sqlplus toad

我有这个问题。

select
   dbms_metadata.get_ddl('USER', username) || '/' usercreate
from
   dba_users where username = 'NSAGUN';

在TOAD中,我收到了这个文字。 (使用SAVE AS TAB DELIMITED)

USERCREATE

   CREATE USER "NSAGUN" IDENTIFIED BY VALUES '1EE5F58CB716B194'
      DEFAULT TABLESPACE "PIN01"
      TEMPORARY TABLESPACE "PINTEMP"
 /

但是在SQLPlus中我只能得到这个:

USERCREATE
--------------------------------------------------------------------------------

   CREATE USER "NSAGUN" IDENTIFIED BY VALUES '1EE5F58CB716B194'
      DEFAULT T

为什么?如何使SQLPlus中的输出与TOAD中的输出相同?

2 个答案:

答案 0 :(得分:3)

在执行查询之前,请尝试在SQL * Plus中使用这些设置:

set long 1000000
set longchunk 1000000
set linesize 200

dbms_metadata.get_ddl函数返回CLOB值,默认情况下为SQL*Plus sets the LONG variable to 80 bytes

答案 1 :(得分:1)

SQL> set long 1000000
SQL> set pagesize 0
SQL> SELECT
  2     dbms_metadata.get_ddl('USER', 'LALIT') || '/' usercreate
  3  from
  4     dba_users where username = 'LALIT'
  5  /

   CREATE USER "LALIT" IDENTIFIED BY VALUES 'S:F10EA8C6778ACE16430E4714FE8C41CFB
2C9E5BC73ADDC503E134EA91AF9;H:076ADC10B6F6540DEEB030DF6C97A752;C6F71E6F6BA0F4BD'

      DEFAULT TABLESPACE "USERS"
      TEMPORARY TABLESPACE "TEMP"/


SQL>

LONG {80 | n}

Set the maximum width (in chars) for displaying and copying LONG values.

SET PAGES [IZE] {14 | N}

  

设置iSQL * Plus中每页输出的行数,以及   命令行和Windows中每页输出的行数   GUI。您可以将PAGESIZE设置为零以禁止所有标题,页面   中断,标题,初始空行和其他格式   信息。