【发布时间】:2012-01-02 13:35:42
【问题描述】:
我在 MySQL 数据库中有一个表。表名长度超过 30 个字符
我想在 Oracle 11g 中制作同一张表,但 Oracle 只允许名称中最多包含 30 个字符的表。
不能把表名改成小于30字符,因为系统是基于这些表的,改名会花很多钱,所以改表名不是我的答案我正在寻找。
有一个名为user_tables 的表,当我描述该表时,它说table_name 字段的数据类型为varchar2(30),所以我尝试更改表并制作table_name varchar2(255),但我不能t,它给了我一个错误说:
ORA-00942: 表或视图不存在
我以sys 连接。
有人知道如何解决我的问题吗?
【问题讨论】:
-
不知道同义词是否支持超过 30 个字符;但这可能是一种解决方法。同义词名称的功能最大长度为 32 个字节。仅 Java 功能允许使用超过 30 个字节的名称。如果您指定的名称超过 30 个字节,则 Oracle 数据库会对该名称进行加密,并将加密的表示形式放在数据字典中。实际的加密是不可访问的,您不能使用原始规范或数据字典表示作为同义词名称。link
-
user_tables是数据字典的一部分,是一组只读表和视图。您不能更新数据字典中的任何对象。 -
如果您可以更新系统表,您绝对不知道它可能会对其他所有系统表产生什么影响。