oracle - PostgreSQL 到 Oracle DDL

标签 oracle postgresql migration identifier

我们正在使用 PostgreSQL(我们对此很满意!),但由于客户政策,我们需要在 Oracle 上运行我们的应用程序。不幸的是,我们的 ERD 充满了长度超过 30 个字符的标识符(列名和关系名)(甚至 21 世纪的 Oracle 11g 仍然无法消化,ORA-00972!)。

你知道有什么工具可以帮助自动重命名长名称吗?
例如 my_very_long_rel_from_table1_to_table2rel_0123

或任何其他智能食谱? (不,我们不会重命名 50 多个表中的所有内容)

https://stackoverflow.com/questions/194945/migrating-from-postgresql-to-oracle 上的类似主题

感谢任何想法或反馈
斯文

最佳答案

卓越。然后是 sed

列出来自 Postgres 的模式中的所有标识符(例如来自 information_schema)。粘贴到 A 列中的 Excel。复制到 B 列。创建一个 C 列,它将在 B 中显示标识符名称长度。按 C 排序。手动缩短 B 中长度超过 30 的标识符,直到没有(我建议不要这样做自动,因为它会使您的数据库混淆)。创建列 D,其中 D1 为:concatenate("sed 's/",A1,"/",B1,"/g'")。

将 D 列复制到文件“change_columns.sh”。通过它过滤 Postgres 架构。通过它过滤您的客户端程序源。

引入关系名称不超过 30 个字符的政策。例如,每天检查 cron 中的架构来强制执行它。

丑得要命。

关于oracle - PostgreSQL 到 Oracle DDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7749312/

相关文章:

sql-server - 从 Oracle 迁移到 Sql Server

sql - 搜索(免费软件)数据库迁移工具

sql-server - Oracle 中与 SQL Server 中的 Latin1_General_BIN 排序规则类型等效的排序规则类型是什么?

mysql - @oneToMany 和@JoinTable 在 jpa 中有唯一约束吗?

oracle - EJB 事务与 Oracle 事务

java - ResultSet.getBlob() 在 ojdbc8 上非常慢

sql - 如何按 ruby​​ 中字符串的整数值排序?

java - 比较 postgres 和 db2 表

postgresql - 如何在 postgresql 中获取完整的函数定义脚本?

python - 将 Django 从 1.6.2 升级到最新版本 (~1.8)