在 Oracle SQL Developer 中假脱机每个表名称

问题描述 投票:0回答:1

我的数据库中有数千个表。而不是单独创建脚本来假脱机处理应用程序表中的所有列。我想循环遍历 alltables TABLE 中的所有表,表名称如“TB_%”。

我尝试在我的 Oracle sql Developer 中使用此解决方案,但收到错误消息,表明该表不存在。我不是 SQL 专家,也不熟悉如何用 SQL 对其进行编程。以下是我所做的代码:

set line 400 set pagesize 2000 set colsep | DECLARE CURSOR get_all_tables IS SELECT table_name FROM all_tables WHERE table_name like 'TB_%'; BEGIN FOR i IN get_all_tables LOOP spool 'C:\documents\script\' || i.table_name || '.txt' execute immediate 'select * from ' || i.table_name; spool off; END LOOP; END;
我想要的是,对于在 all_

tables 中找到的每个具有表_name(例如 'TB_%')的表,应该创建一个文件,其假脱机文件名等于表名。并且,它应该假脱机显示每个表的所有列。谁能帮我检查一下我所做的代码吗?

谢谢你

sql oracle-sqldeveloper
1个回答
0
投票
那是行不通的;

spool

是一个SQL*Plus命令,不能在PL/SQL中使用它。


但是,当您使用 SQL Developer 时,请正确使用它。

转到“工具”菜单并选择“数据库导出”

    选择连接
  • 设置复选框;为简单起见,我只留下“导出 DDL”并选择“另存为单独的文件”。您还可以选择“导出数据”;如果保留“插入”格式,您将在导出文件中得到
  • INSERT INTO
  • 语句
  • 在“要导出的类型”中,仅选择表格
  • 在“指定对象”中,根据表名称进行过滤。我没有任何“TB”表,但我有“DE”表(在“查找”按钮后,将它们移到右侧)
  • 点击“完成”
  • 结果:我的临时目录中的两个文件,都包含
  • CREATE TABLE
  • 语句(如果您选择“导出数据”,您也会得到
  • INSERT INTO

© www.soinside.com 2019 - 2024. All rights reserved.