2013-11-23 97 views
0

我不知道sqlplus。但是試圖在工作中完成一項任務。任務是登錄到一個模式並在單行中獲取以下信息 - schema_name,database_name,database_link_name,user_name如何做兩個sqlplus查詢並在單行顯示結果

我能夠在兩行中獲取該信息。如果有人提出了一種簡單的方法在一行中獲取兩個不同的select查詢的結果,我將不勝感激。

以下工作,但給我所需的結果在兩行。我希望他們在單行中。

SQL> select * from 
(select user || ' ' || sys_context('USERENV','DB_NAME') as Instance from dual), 
(select DB_LINK || ' ' || username from user_db_links); 

TSTSCRIPT2 ORADEV 
MCCODEVTOMCCOSTG_TSTSCRIPT1 TSTSCRIPT1 
+0

你嘗試什麼問題要解決? –

+0

我收到了兩個回覆。這解決了我的問題。我正在嘗試創建一個腳本,它查找所有模式下的所有dblink,然後使用「alter database link」命令更改鏈接密碼。我們每次更改模式密碼時都必須更改鏈接密碼。我將使用「expect」函數編寫shell腳本。 – user1149518

回答

0
select (select user || ' ' || sys_context('USERENV','DB_NAME') as Instance from dual) as user_info, 
     (select DB_LINK || ' ' || username from user_db_links where rownum < 2) as db_link 
from dual; 
+0

謝謝兩者。 SQL>選擇用戶|| ''|| sys_context('USERENV','DB_NAME')作爲實例,DB_LINK || ''||用戶名爲res2 from user_db_links t; INSTANCE RES2 -------------------- ------------------------- ---------------------------------- TSTSCRIPT1 MCCODEV MCCODEVTOMCCOSTG_TSTSCRIPT1.SLAC.STANFORD.EDU TSTSCRIPT1 TSTSCRIPT1 MCCODEV MCCODEVTOMCCOSTG_TSTSCRIPT2。 SLAC.STANFORD.EDU TSTSCRIPT2 – user1149518

2

只需指定爲一列的顯示格式。在你的情況下,由於有多個值被串聯在一起,它將會是別名。

/* Here character value is 11 characters long "a11" 
    If you need it to be longer or shorter simply increase or decrease 
    the value of the constant, make it "a20", for instance 
*/ 
SQL> column instance format a11; 
SQL> column res2 format a11; 

SQL> select user || ' ' || sys_context('USERENV','DB_NAME') as instance 
      , DB_LINK || ' ' || username      as res2 
     from user_db_links t 

結果:

INSTANCE RES2  
----------- ----------- 
HR CDB  NK1 HR 
相關問題