oracle使用中遇到的問題備忘

來源:互聯網
上載者:User

下班了,寫兩篇文章都回家了:)

以前也用oracle,都是別人弄好了,我直接用,就只感覺預存程序,sql文法比用MSSQL稍微彆扭點,其他配置很少接觸,這次從用pd建表到弄好資料庫讓大家用,都大體弄了偏,瞭解了更多東西,把部分現在記下來的寫下來做個備忘。

PD裡是可以直接設定資料表空間存放位置的,如表存放的資料表空間和lob對象單獨存放資料表空間如:

主鍵存放資料表空間設定如下:

設定後,用PD產生SQL代碼,則會自動產生資料表空間代碼。

oracle中預存程序的單步調試和直接產生結果,以前認為很麻煩,因為要用cursor對象,不想MSSQL直接exec 預存程序名就出來了,而是返回一個cursor,以前也沒有解決怎麼調試預存程序方便,這次發現,原來直接在pl/sql中比如packages裡找到定義包頭下面的預存程序,右鍵測試,自動就產生好對應的測試預存程序的代碼,只需要在下面寫好參數,產生後,點擊cursor後面的...框,就能查看到該預存程序產生的結果了。

感覺還麻煩點,但整合了單獨調試啊等,感覺功能強大點。

 

oracle DBLINK串連,這個糾結了我半天,其實弄好後發現很簡單,我單獨寫了文字文件記錄:

 

遠端連線了AAA後,需要串連BBB執行個體,並查詢資料,DBLINK方法如下:

create database link BBB
connect to 使用者 identified by
密碼 using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = BBB)
    )
  )'

如果登入的AAA(注意是登入的機器,不一定是本機)執行個體tnsnames.ora檔案裡面添加了類試:
BBB=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = BBB)
    )
  )

這樣的代碼,則只需要:
create database link BBB
connect to 使用者 identified by
密碼 using 'BBB'
即可
(注意:Link後面大寫的BBB是取的名字, to後面的 使用者 是登入名稱,by後面的 密碼 是密碼,using 後面雙引號包含的是tnsnames.ora取的名字)

----------------------------------------------------------------

測試如下:
select *
from EW_AREA@BBB;

EW_AREA是遠端資料庫的表, BBB是link的名稱,

查詢登入的機器所建立的所有DBLINK如下:
select owner, db_link from dba_db_links

刪除指定DBLINK串連如下:
DROP DATABASE LINK BB
-------------------------------------------------------------------------
如果建立全域用的,需要加public,比如:
create public database link BBB2 ....

刪除則也需要刪除全域的
DROP public DATABASE LINK BBB2

 

 

觸發器的問題,自增欄位開始準備調SQL的時候手寫序列.Nextval,但是最後發現在用一些ORM工具建立對象時,比如直接就insert(item)對象了,這個時候需要先從序列裡擷取ID,再插入資料庫,將串連兩次資料庫,並且寫SQL或者預存程序的時候,如果不寫序列.NextVal,也更好,因此還是決定用觸發器,其他地方儘力少用吧,防止鎖表之類的。

 

其他細節也還多,但都很容易在網上搜尋到,還有些問題暫時沒在項目中遇到,就不寫了。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.