[20170618]12c 支援更長的 identifiers
[20170618]12c 支援更長的 identifiers.txt
--//12c 支援更長的索引與表名,帶來的問題就是sqlplus顯示混亂.太長了.
--//必須有一個方法改變顯示列的寬度.
SCOTT@test01p> @ ver1
PORT_STRING VERSION BANNER CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0 12.1.0.1.0 Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 0
--//我當前的版本還不支援長表名.參考連結:http://blog.itpub.net/267265/viewspace-1991846/
--//在那個連結裡,我已經提到oracle將來會支援更長的表名.
--//實際上這個帶來的問題還有許多,比如目前使用的一些工具比如toad,PLSQLDev等等.還有一些執行計劃的顯示在sqlplus(居然沒有人測試這樣的情況^_^).
--//為了目前在sqlplus能很好的顯示,我建立一個文字重新定義長度20.
SELECT DISTINCT 'column ' || column_name || ' format a20;' result
FROM dba_tab_cols
WHERE data_type = 'VARCHAR2' AND data_length = 128
ORDER BY 1;
--//把輸出儲存下來128.txt,修改glogin.sql檔案,加入如下:
@@128.txt
--//執行前:
SCOTT@test01p> select index_name, status,orphaned_entries from dba_indexes where owner=user and index_name='INDEX1';
INDEX_NAME STATUS ORP
-------------------------------------------------------------------------------------------------------------------------------- -------- ---
INDEX1 VALID NO
--//前後對比就很明顯了.
SCOTT@test01p> select index_name, status,orphaned_entries from dba_indexes where owner=user and index_name='INDEX1';
INDEX_NAME STATUS ORP
-------------------- -------------------- ---
INDEX1 VALID NO
--//不過也帶來另外的問題,明顯status加寬了,暫時湊合吧.
--//找到一個連結,可以限制identifiers長度不要大於30.
--//www.toadworld.com/platforms/oracle/b/weblog/archive/2017/02/07/oracle-12-2-new-feature-longer-object-column-names
create or replace trigger ddl_trigger
before create or alter on demo.SCHEMA
declare
l_obj varchar2(128);
l_dba int;
begin
l_obj := ora_dict_obj_name;
select count(*)
into l_dba
from dba_role_privs
where grantee = USER
and granted_role = 'DBA';
if l_dba = 0 and length(l_obj) > 30 then
raise_application_error(-20000,'Identifier "'||l_obj||'" is too long');
end if;
end;
--//測試看看:(這裡測試>20,另外我的scott使用者有dba許可權)
create or replace trigger ddl_trigger
before create or alter on scott.SCHEMA
declare
l_obj varchar2(128);
l_dba int;
begin
l_obj := ora_dict_obj_name;
if length(l_obj) > 20 then
raise_application_error(-20000,'Identifier "'||l_obj||'" is too long');
end if;
end;
/
SCOTT@book> create table t1234567890123456789011 (a number);
create table t1234567890123456789011 (a number)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-20000: Identifier "T1234567890123456789011" is too long
ORA-06512: at line 7
SCOTT@book> create table t123 (a number);
Table created.
SCOTT@book> create index i_t12345678901234567890 on t123(a);
create index i_t12345678901234567890 on t123(a)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-20000: Identifier "I_T12345678901234567890" is too long
ORA-06512: at line 7
SCOTT@book> alter table t123 rename column a to a12345678901234567890;
Table altered.
--//^_^,有點問題,並沒有限制欄位的寬度.僅僅做一個記錄也許以後有用!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2140939/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java IdentifiersJavaIDE
- Oracle identifiers :Database NameOracleIDEDatabase
- Oracle identifiers :DBIDOracleIDE
- 12c下更換ASM磁碟ASM
- goldengate 12c對teradata的支援Go
- Oracle identifiers :Global database nameOracleIDEDatabase
- oracle 12c 支援級聯 standby dataguardOracle
- Oracle identifiers :SID (System Identifier)OracleIDE
- QTP的3類順序標識(Ordinal Identifiers)QTIDE
- 12c ASM audit目錄增長過快的bugASM
- 哪種應用的使用時間更長?
- Chrome 將延長對 Windows 7 的支援ChromeWindows
- [20130915]12c新特性 varchar2支援32K長度.txt
- Neuron 2.1.0 釋出:支援 Sparkplug B 規範,更完善的工業協議支援Spark協議
- Linux知識積累(長更)Linux
- Rafy 框架 - 實體支援只更新部分變更的欄位框架
- Oracle 12c 暫時不支援IBM,HP的虛擬化產品OracleIBM
- npm包使用過程中遇到的坑,長期更~NPM
- 【Oracle 12c資料庫支援閃回庫功能】實驗Oracle資料庫
- Oracle goldengate 12c 新特性之完美支援Active Data GuardOracleGo
- JSnaughty: Recovering Clear, Natural Identifiers from Obfuscated JS NamesJSIDE
- oracle 12c R2 new feature 支援執行過的歷史命令Oracle
- AngularJS終止了長期支援AngularJS
- 微軟延長 XP 系統安全支援微軟
- ELWN FIT無線耳塞很特別:續航更長佩戴更舒適
- 亞馬遜推出具有長期支援的免費JDK版本亞馬遜JDK
- Android 讓你的SeekBar 也支援長按事件薦Android事件
- 小程式長期訂閱訊息的支援問題
- 如何讓筆記本使用壽命更長筆記
- Security:84%的美國人使用8個字元或更長的密碼字元密碼
- 奇葩鍵盤故事多 TrewGrip長的奇怪營銷更奇怪!
- Flurry:哪種移動端應用的使用時間更長
- Babylon.js 3.3釋出:更強大的粒子系統和WebVR支援JSWebVR
- Win10支援DirectX 12,那麼需要更換顯示卡嗎?Win10
- NVIDIA DOCA 1.5 長期支援版本釋出
- 修改Tomcat可支援get形式url長度Tomcat
- 有什麼可以切割長圖的軟體嗎?支援自動將長圖進行切割
- 讓手機應用“長輩版”更貼心RCC