2013-11-23 70 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 
相关问题