表名和循环描述
在 Oracle 10g 中工作。列出所有表名称的简单方法(从 dba_tables 中选择 table_name,其中所有者 = 'me') 但是现在我有了表名,是否有一种简单的方法可以循环遍历它们并按顺序对每个表进行“描述”?
Working in Oracle 10g. Easy way to list all tables names (select table_name from dba_tables where owner = 'me')
But now that I have the table names, is there an easy way to loop through them and do a 'describe' on each one in sequence?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我建议按照 N. Gasparotto 的建议查询 dba_tab_columns,但如果您确实想要描述输出,则使用以下内容创建一个文件 mulit-describe.sql:
在 SQL*PLUS 中运行:
I'd recommend querying dba_tab_columns, as N. Gasparotto suggested, but if you really want describe output then create a file mulit-describe.sql with the following:
Within SQL*PLUS run by:
您可以查询 DBA_TAB_COLUMNS(或 USER_TAB_COLUMNS)。
尼古拉斯.
You could query against DBA_TAB_COLUMNS (or USER_TAB_COLUMNS).
Nicolas.
不确定您是否可以从 PL/SQL 中进行描述。我刚刚尝试使用
立即执行'describe some_table'
,但这也不起作用。您的下一个选择是查询 DBA_TAB_COLUMNS,或者使用所有描述语句创建一个新文件(使用 pl/sql 和 spool 中的 dbms_output 来创建文件),然后执行该文件。也许是这样的:Not sure you can do a describe from within PL/SQL. I just tried using
execute immediate 'describe some_table'
, that doesn't work either. Your next choice would be to query DBA_TAB_COLUMNS, or create a new file with all your describe statements (using dbms_output from pl/sql and spool to create the file) and then execute that file. Maybe like this:您可以使用 DBMS_METADATA 在 PL/SQL 中执行此操作.GET_DDL,例如(来自文档的示例):
You can do this in PL/SQL using DBMS_METADATA.GET_DDL, e.g. (example taken from docs):
使用用户登录,然后运行以下命令,第一个文件将包含描述命令,第二个文件将是所需的文件,其中包含登录用户的所有表的所有描述
login with the user and then run the following commands, first file will contain the describe commands and the second file will be the desired file containing all the descriptions of all tables for logged in user