各位好,我知道注释的表为user_col_comments
但是我用用户导出了数据之后,不能做insert,说的是权限不够.
请问怎么解决.谢谢!
但是我用用户导出了数据之后,不能做insert,说的是权限不够.
请问怎么解决.谢谢!
解决方案 »
- ---------------varchar2疑问------------------
- 求Oracle中建临时表的例子
- 一条复杂的sql查询语句,不知道怎么写好点?????
- SQL查询
- 请教一个数据库中数据并发的问题?高分!
- Io 异常: The Network Adapter could not establish the connection
- 10W以上用户同时增加记录到服务器的同一个表上 如何保证操作能够顺利进行,不丢失数据,不等
- Oracle备份问题:我要重装系统的话该怎么办?
- oracle10g中的perfstat用户问题?
- 表关联的一个简单问题
- 菜鸟求解一条Oracle 审计相关的SQL语句
- oracle建库建表的sql语句
这张视图是根据你在建立表的注释来改变的..你要insert就去修改你表结构就行了
...因为在导入库之后.所有的注释都变成乱码了...
所以所有的表注释都要导的...
有没有什么简单的方法?
我想把以前的库的注释都导出来,然后覆盖掉现在的注释
然后去修改那几个表
create or replace view dba_col_comments
(owner, table_name, column_name, comments)
as
select u.name, o.name, c.name, co.comment$
from sys.obj$ o, sys.col$ c, sys.user$ u, sys.com$ co
where o.owner# = u.user#
and o.type# in (2, 4)
and o.obj# = c.obj#
and c.obj# = co.obj#(+)
and c.intcol# = co.col#(+)
and bitand(c.property, 32) = 0 /* not hidden column */
可以通过系统字典生成一批增加释的语句是最好的,如:
SELECT 'comment on column ' || t.table_name || '.' || t.column_name || ' is '''
|| t.comments ||''';'
FROM user_col_comments t;
DELETE FROM sys.com$ C WHERE obj# IN (
SELECT o.obj# FROM sys.obj$ o, sys.user$ u
WHERE o.owner# = u.user#
and o.obj# = c.obj# AND o.name =IN_TABLE_NAME AND U.NAME =IN_OWNER)
AND c.col# is NULL;
COMMIT;INSERT INTO sys.com$ (obj#,col#,comment$)
SELECT o.obj#,NULL, c_ZSK.comment$
FROM sys.obj$ o, sys.user$ u/*,sys.com$ C*/ ,sys.obj$@JL_ZSK o_ZSK, sys.user$@JL_ZSK u_ZSK, sys.com$@JL_ZSK c_ZSK
WHERE o.owner# = u.user# --and o.obj# = c.obj#(+) AND c.col# is NULL
AND o.name =IN_TABLE_NAME AND U.NAME =IN_OWNER
AND o_ZSK.owner# = u_ZSK.user#
and o_ZSK.obj# = c_ZSK.obj#(+)
and c_ZSK.col# is NULL
AND o.name =o_ZSK.name AND U.NAME =U_ZSK.NAME AND c_ZSK.comment$ IS NOT NULL;COMMIT;