2012-01-02 75 views
4

我在MySQL数据库中有一个表。表的名称长度超过30个字符 我想在Oracle 11g中创建同一个表,但Oracle只允许名称中最多包含30个字符的表。
我不能改变表的名称,使它少于30个字符,因为系统基于这些表,并且如果我改变名称会花费我很多,所以改变表名不是我正在寻找答案。超过30个字符的表名称

有一个叫user_tables表,当我描述表它说的table_name场都有一种数据类型varchar2(30),所以我试图改变表,使table_name varchar2(255)但我不能,它给了我一个错误他说:

ORA-00942:表或视图不存在

我连接为sys

有谁知道如何解决我的问题?

+0

不知道同义词是否支持30以上的字符;但它可能是一个工作。同义词名称的功能最大长度是32个字节。只有Java功能才允许超过30个字节的名称。如果指定的名称长度超过30个字节,则Oracle数据库将对名称进行加密,并将加密表示置于数据字典中。实际加密不可访问,您不能使用原始规范或数据字典表示作为同义词名称。[link](http://docs.oracle.com/cd/B12037_01/server.101/b10759/statements_7001 .htm) – xQbert 2012-01-02 13:43:12

+0

'user_tables'是数据字典的一部分,它是一组只读表和视图。您无法更新数据字典中的任何对象。 – eaolson 2012-01-02 14:18:21

+0

如果你可以更新系统表,你完全不知道它可能对每个其他系统表有什么影响。 – Ben 2012-01-02 16:17:55

回答

15

所有Oracle标识符限制为30个字符。没有可以让你改变的选项。

3

同义词将无效:source。 30的限制很难,也很快。

编辑: 经过持续研究oracle docs除非在这里每个评论的java每个评论甚至同义词将无法超过30个字符。

长话短说:你不能在oracle环境中做你想做的事情。

相关问题