0

版本:10.2b

所以可以说我有一个正在进行的餐桌狗:

table: dogs 
fields: name, age, breed

我想使用标准加载实用程序将它们加载到 oracle 数据库中。但是oracle中的表是这样的

table: dog
fields: name, age, date_last_updated

所以如果我制作一个与之匹配的临时表,有没有办法将临时表“转储”到 sql 中?(这样我就可以将它加载到 oracle 中)

如果不是,那也是一个很好的答案。

谢谢你的帮助!!

编辑:通过“sql转储”我的意思是:

INSERT INTO dog
VALUES (Max, 5, Feb 18, 2013)

除了将“INSERT INTO”字样导出到我的文件中之外,有没有办法以这种格式获取表格。

4

3 回答 3

1

使用支持 ODBC 的数据库管理工具(例如DBeaver),您可以连接到进度数据库并将表和视图导出到 SQL 插入。

于 2013-02-19T02:07:21.093 回答
1

感谢您的澄清。

在 4GL 中,转储表(真实表或临时表)的“自然”方式是使用 EXPORT 语句创建文本文件。像这样:

/* export the dog record as-is
 */

output to "dog.d".
for each dog no-lock:
  export dog.
end.
output close.

或者:

/* export modified dog records
 */

output to "dog.d".
for each dog no-lock:
  export dog.name dog.age now.
end.
output close.

这个Oracle: Import CSV file建议可以将 CSV 文件导入 Oracle,因此您可以像这样修改上面的代码以创建一个逗号分隔的文件,而不是使用 Progress 的默认空格分隔符:

/* export modified dog records to a CSV file
 */

output to "dog.csv".
for each dog no-lock:
  export delimiter "," dog.name dog.age now.
end.
output close.
于 2013-02-18T15:48:39.653 回答
1

根据您的问题,这样的事情会起作用。您还可以将“TT”引用替换为实际的表名。

OUTPUT TO VALUE("sqldump").

FOR EACH tt-dogs:

  PUT UNFORMATTED
     "INSERT INTO dog VALUES (" tt-dogs.dog-name tt-dogs.age TODAY ")" SKIP.

END.

OUTPUT CLOSE.
于 2013-02-18T16:06:18.877 回答