使Oracle限制大于30
发布时间:2020-12-12 16:25:13 所属栏目:百科 来源:网络整理
导读:我们都知道Oracle对象名称表名列和bla-bla有30个字节的限制,我一直在网上搜索解决方案的几个小时,但我找不到任何东西,最终我放弃了. 我们正在开发一个同时使用MySQL和Oracle的应用程序,在我们开始实现Oracle之前一切正常,我们遇到了有关表和存储过程名称的问
我们都知道Oracle对象名称表名列和bla-bla有30个字节的限制,我一直在网上搜索解决方案的几个小时,但我找不到任何东西,最终我放弃了.
我们正在开发一个同时使用MySQL和Oracle的应用程序,在我们开始实现Oracle之前一切正常,我们遇到了有关表和存储过程名称的问题. 我无法更改表的名称,因为应用程序已在客户端服务器上运行. 有解决方案吗也许某些属性告诉oracle使限制大于30. Oracle 12c中的 SQL Translator Profiles可能会帮助应用程序假装Oracle支持相当长的对象名称.这可以允许您在不修改应用程序的情况下更改数据库.下面是将大于30字节的名称转换为短名称的简单示例: SQL> create table short_table_name(a varchar2(100)); Table created. SQL> insert into short_table_name values ('Success'); 1 row created. SQL> begin 2 dbms_sql_translator.create_profile('LONG_OBJECT_NAMES'); 3 dbms_sql_translator.register_sql_translation( 4 profile_name => 'LONG_OBJECT_NAMES',5 sql_text => 'select * from because_30_bytes_just_isnt_enough_sometimes',6 translated_text => 'select * from short_table_name'); 7 end; 8 / PL/SQL procedure successfully completed. SQL> alter session set sql_translation_profile = LONG_OBJECT_NAMES; Session altered. SQL> alter session set events = '10601 trace name context forever,level 32'; Session altered. SQL> select * from because_30_bytes_just_isnt_enough_sometimes; A ---------------------------------------------------------------------------------------------------- Success 这可能有用,但我可以想到十几个原因,这是一个坏主意.只考虑这是最后的手段. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |