2012-03-07 20 views
1

我們遇到了一個問題,那就是所有類型的人不應該(比如我們的客戶自己,但是競爭對手的公司)在我們安裝數據庫時添加邏輯(觸發器,過程)有時會改變或破壞我們軟件的正常運作。oracle中的換行表

爲了防止這種情況/使它變得更加困難,我們希望包裝表格,限制條件等。我們正在尋找在返回炒的結果:

select table_name from user_tables; 

desc [name]; 

和炒標題上:

select * from [name]; 

數據本身不需要包裝。

這可能嗎?如果是這樣,怎麼樣?有什麼副作用要考慮(即現有的查詢是否仍然有效)?

謝謝!

+4

那麼競爭的公司可以在您的應用使用的架構中安裝位?如果你不能收緊權限/授權,我會在合同中寫一些東西,如果有人混淆模式,這會使任何形式的支持失效。 – beny23 2012-03-07 10:59:10

+0

他們可以。我們的客戶擁有對數據庫和架構所有者密碼的sys級訪問權限,他們對此非常慷慨。如果架構混亂,我們確實有放棄支持權利的政策,但我們不敢強制執行,因爲擔心他們會跑向競爭對手。 (沒有什麼幫助的是,我公司的另一個業務部門也混淆了我們的模式,他們支付我們使用費用,但感覺他們也可以改變/添加它。) – 2012-03-07 11:23:25

+0

我明白你的痛苦:) ......我也住在柵欄的另一邊 - 試圖讓設計不佳的Oracle系統工作得相當好 - 而且由於封裝被封裝,我唯一的工具是精心挑選的索引和偶爾的SQL存儲的大綱 - 所有這些都是因爲供應商認爲無需改進產品。爲了解決問題,我們必須在未經修改的產品版本上重現問題,即便如此,我們是否會得到任何幫助。 – 2012-03-11 13:52:25

回答

5

不,你不能那樣做。我已經看到數據庫中所有的表和列的名字都像select c153427 from t765648(也許SAP就是這樣嗎?不記得了),但是當然你爲自己以及客戶和第三方而努力。

簡單地告訴客戶,如果他們以任何方式修改您的模式,或將觸發器添加到您的表中,它們不再受支持不是更好嗎?

+1

+1:像負責任的人一樣對待你的客戶:讓他們小提琴,但如果他們破壞了他們自己的東西(或者至少不是傳統的支持)。 – 2012-03-07 11:10:10

+0

謝謝,我很擔心。 我們的確有這樣的政策,但由於我們處於競爭激烈的市場,我們認爲我們需要縱容客戶並支持他們。 我問的原因是一名同事在競爭對手的數據庫中看到類似的東西,但我想他們只是有一個鈍的命名約定。 – 2012-03-07 11:11:10