当前位置: 代码迷 >> Oracle管理 >> 关于 connect 角色的用户 怎么批量获取其连接同义词的 表结构建表语句的有关问题
  详细解决方案

关于 connect 角色的用户 怎么批量获取其连接同义词的 表结构建表语句的有关问题

热度:185   发布时间:2016-04-24 04:07:17.0
关于 connect 角色的用户 如何批量获取其连接同义词的 表结构建表语句的问题
本帖最后由 jake2658 于 2015-01-08 16:54:39 编辑
如题示,我目前拿到的用户,只有 connect角色,其下有一堆同义词能够获取另一个数据库的一些表的数据。

① 直接select * from 表名(同义词名称) 可以直接查看那些表里的数据。
② 如果我用plsqldev 连接,
    还能通过ctrl+点击的方式查看表结构的SQL,这么说 理论上表结构是可以获取的。
③ 但是怎样才能获得呢?
     网上搜了一下,有个dbms_metadata.get_ddl('')函数
    但是 select dbms_metadata.get_ddl('SYNONYM','ABC') from dual 这样的语句只能获得创建同义词的 语句;
    像这样:CREATE OR REPLACE SYNONYM "CONN"."ABC" FOR "LOCALDBA"."ABC"
    如果  select dbms_metadata.get_ddl('TABLE','ABC') from dual  的话 ,很明显系统会认为 本用户CONN下没有ABC表。

 我该怎么做? 求大牛解答.



------解决思路----------------------
借助数据字典自己生成语句
select 'create table '
------解决思路----------------------
table_name
------解决思路----------------------
'('
------解决思路----------------------

wmsys.wm_concat(column_name
------解决思路----------------------
' '
------解决思路----------------------
data_type
------解决思路----------------------

decode(data_type,'VARCHAR2','('
------解决思路----------------------
DATA_LENGTH
------解决思路----------------------
')','NUMBER','('
------解决思路----------------------
DATA_LENGTH
------解决思路----------------------
decode(DATA_SCALE,0,'',null,'',','
------解决思路----------------------
DATA_SCALE)
------解决思路----------------------
')',''))
------解决思路----------------------
');' from user_tab_columns group by table_name;

------解决思路----------------------
真没有明白你说的,你百度下 同义词是什么? 引入同义词干什么,就知道你要能看到,那就是oracle 的bug 了。
  相关解决方案