gpt4 book ai didi

sql - 如何在 Oracle 中通过 SQL 获取表注释?

转载 作者:行者123 更新时间:2023-12-03 11:56:07 26 4
gpt4 key购买 nike

我试过了 :

select * from user_tab_comments;

它返回 3 列“TABLE_NAME”、“TABLE_TYPE”和“COMMENTS”,但“TABLE_NAME”列就像“加密”,我需要明确的表名:
TABLE_NAME                      TABLE_TYPE  COMMENTS

BIN$IN1vjtqhTEKcWfn9PshHYg==$0 TABLE Résultat d'intégration d'une photo numérisée
BIN$PUwG3lb3QoazOc4QaC1sjw==$0 TABLE Motif de fin d'agrément de maître de stage

当我使用 select * from user_tables; TABLE_NAME 未“加密”。

最佳答案

由于 10g Oracle 在我们发出 DROP TABLE 语句时不会立即删除表。相反,它像这样重命名它们 BIN$IN1vjtqhTEKcWfn9PshHYg==$0并将它们放入回收站。这允许我们恢复我们不打算删除的表。 Find out more .

回收站中的表仍然是表,因此它们显示在 ALL_TABLES 和类似 View 中。因此,如果您只想查看仅与事件(未删除)表相关的评论,则需要按表名进行过滤:

select * from all_tab_comments
where substr(table_name,1,4) != 'BIN$'
/

"I can't believe there isn't a flag column so you could do and is_recycled = 0 or something. "



你是对的,这将是不可思议的。所以我检查了文档,结果发现 Oracle 10g 在 USER_/ALL_/DBA_TABLES View 中添加了一个名为 DROPPED 的列。
select tc.* 
from all_tab_comments tc
join all_tables t
on tc.owner = t.owner
and tc.table_name = t.table_name
where t.dropped = 'NO'
/

退房 the documentation .显然,需要加入 ALL_TABLES View 需要更多的输入而不是过滤名称,因此根据我们的需要,保留原始 WHERE 子句可能更容易。

关于sql - 如何在 Oracle 中通过 SQL 获取表注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16567129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com