2012-01-02 39 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環境中做你想做的事情。

相關問題