達夢數據庫踩坑盤點


  隨着國產化項目的推進,使用國產數據庫是免不了的了,但國產數據庫真的很xx,下面來盤點一下對接達夢數據庫遇到的坑。本文書寫時使用的版本為DM8。

1,數據庫實例,表空間

  達夢數據庫的設計類似於Oracle,即采用了表空間形式,MySQL為非表空間形式。在達夢數據庫的概念中,數據庫用戶與表空間是一一對應的,即A用戶默認只能操作模式A(表空間A)。如果需要對其他的表空間進行操作,則需要在SQL語句中將原有的 表名 改寫為 表空間名.表名 來解決。另一種解決方案,則是將用戶名與模式名對應,如登陸的用戶是SYSDBA,則操作的模式也是SYSDBA。

  表空間類型配置:dbc:oracle:thin:@localhost:1521:orcl(配置支持連接同一個端口下不同數據庫實例,不同用戶登錄使用不同表空間

  非表空間類型配置:jdbc:mysql://localhost:3306/數據庫名(配置支持連接同一個端口下不同數據庫實例,不同用戶登錄使用同一數據庫

  oracle數據庫一個監聽端口號可以對應多個數據庫實例,而達夢數據庫一個監聽端口號對應一個數據庫實例,要建立多實例,必須配置多個監聽端口號。

  達夢連接配置:jdbc:dm://172.19.45.26:5236(無需配置數據庫名,端口即代表了數據庫名,無需配置表空間名,因為配置也不會生效!)

2,字母大小寫、單引號、雙引號

  初始化達夢數據庫的時候,默認勾選了“字符串比較大小寫敏感”,建表的時候,如果表名或列名使用小寫字母,那么今后書寫SQL語句的時候就要麻煩很多了,必須嚴格區分單引號、雙引號的使用。字符串常量應使用單引號括起,關鍵字、對象名、字段名、別名等則使用雙引號括起。

  而且,在大小敏感的數據庫下,使用dexp導出數據庫、模式正常,但導出小寫字母創建的表時,可能會提示“表不存在或者為系統內部對象,請核對后再進行輸入”。

  所以,盡量在新建庫時,去掉勾選“字符串比較大小寫敏感”

3,導入導出命令

導入:dexp  SYSDBA/123456789@172.19.45.26:5236  FILE=dexp01.dmp  LOG=dexp01.log  DIRECTORY=./dexp FULL=Y

導出:dimp SYSDBA/12345678@172.19.45.26:5236  FILE=./dexp/dexp01.dmp  LOG=dimp02.log DIRECTORY=/DM8/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM