在當前現有模式中大多數索引/約束名稱是由oracle生成的,如SYS_CXXXXX,我試圖將它們導出爲DDL語句,這裏我需要用類似PK_(表名)或PK_(表名)1。感謝在將它們導出爲ddl時重命名索引名稱
0
A
回答
1
可以使用ALTER命令的命名選項來重命名約束/索引:
SQL> create table t (x int primary key);
SQL> select constraint_name from user_constraints
2 where table_name = 'T';
CONSTRAINT_NAME
----------------------
SYS_C0010667
SQL> alter table t rename constraint sys_c0010667 to t_pk;
SQL> select constraint_name from user_constraints
2 where table_name = 'T';
CONSTRAINT_NAME
----------------------
T_PK
SQL> select index_name from user_indexes where table_name = 'T';
INDEX_NAME
----------------------
SYS_C0010667
SQL> alter index sys_c0010667 rename to t_pk;
Индекс изменен.
SQL> select index_name from user_indexes where table_name = 'T';
INDEX_NAME
----------------------
T_PK
+0
感謝德米特里,這可能鍛鍊,如果我們需要在現有schmema中的更改。但在這裏我正在嘗試創建schmea導出腳本。這種模式導出的結果是一些DDL語句,我試圖重命名DDL statemetns中的索引名稱,這可以讓我們有我們確定的索引/約束名稱 – user2142732
+0
在這種情況下,您可以僅替換CLOB數據中的對象名稱GET_DDL函數返回 - 使用replace ()函數。 –
相關問題
- 1. 重命名文件,如「名稱+索引」
- 2. 將jquery.js重命名爲其他名稱
- 3. 代理lotus:detach file ...並將它們重命名爲加入時間
- 4. XSLT:在重命名時將元素名稱設置爲屬性
- 5. VBA名稱 - 它們在哪裏引用?
- 6. 重命名索引值
- 7. ServiceStack V4元數據索引頁面 - 重命名操作名稱
- 8. 重命名文件名索引
- 9. 將index_id翻譯爲索引名稱
- 10. Python:如何找到重複的文件夾名稱並重命名它們?
- 11. 當它們的名稱與它們返回的數據類型相同時,屬性被重命名
- 12. 移動照片並重命名它們,如果它們存在?
- 13. 在elasticsearch索引中重命名doctype
- 14. 在PHP中重命名數組索引
- 15. 捆綁到commonjs時重命名導入名稱?
- 16. 重命名jar包名稱
- 17. 在SQL中導出帖子名稱,然後重新使用它們[Wordpress/Woocommerce/SQL]
- 18. UIButton的名稱不改變它從UITablView索引單元名稱
- 19. 使用JFileChooser將名稱命名爲PDF
- 20. 將具有重複名稱的MySQL索引轉換爲PostgreSQL
- 21. 通過list()變量名稱而不是索引在R中重命名
- 22. 重命名的文件集時,舊名新名稱在Python3
- 23. 將圖像命名爲導航欄名稱
- 24. Python3將文件重命名爲從txt文件導入新名稱的目錄
- 25. 通過它們的出現比例檢索名稱
- 26. OrderBy命名索引
- 27. 重命名add_index:在ActiveRecord中的名稱
- 28. 在geokettle中重命名字段名稱
- 29. 在MyEclipse中重命名項目名稱
- 30. 警告:ionic.project已被重命名爲ionic.config.json,請重命名它
你嘗試過什麼?你有沒有研究過如何完成這件事? – mathielo
did try this spool create_indexes.sql SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)DDL FROM USER_INDEXES u; 假脫機; 與此我正在創建腳本中獲取現有的索引名稱,而不是我試圖用名稱可以很容易地識別 – user2142732