如果您计划重复使用该查询,则为其创建视图可能是有意义的。
您可以像对表进行评论一样对数据库视图进行评论:
create view TEST_VIEW as select 'TEST' COL1 from dual;
comment on table TEST_VIEW IS 'TEST ONLY';
Run Code Online (Sandbox Code Playgroud)
要查找视图上的评论,请执行以下命令:
select * from user_tab_comments where table_name='TEST_VIEW';
Run Code Online (Sandbox Code Playgroud)
参考:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:233014204543
注意:此 URL 声明 SQLPLUS DESCRIBE 命令仅应与“表、视图或同义词”或“函数或过程”一起使用。这意味着 DESCRIBE 的目标必须是现有的数据库对象。
http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12019.htm
作为 SQLPLUS 命令,DESCRIBE 无法动态解析 SQL 语句。DESCRIBE 返回的所有信息都存储在数据字典中。
如果您有一个查询,表示要从一个数据库中提取并加载到另一个数据库中的一组数据,那么在源数据库中为该查询创建视图似乎非常明智。一旦有了该视图,就可以describe从各种数据字典表中查看或提取正在寻找的信息。
而且我认为,有充分的理由倾向于使用一种基于文件的自定义解决方案,而不是Oracle提供的用于处理数据复制的任何技术将数据从一个数据库复制到另一个数据库。与编写自己的视图相比,物化视图,Streams,GoldenGate等通常都是更好的解决方案。
如果不允许在源数据库上创建对象,则不能使用SQL * Plus describe命令。您可以编写一个匿名的PL / SQL块,该块使用该dbms_sql包来解析和描述动态SQL语句。这将比使用describe命令复杂得多,您将必须弄清楚如何格式化输出。我将以这个describe_columns示例为起点。