2016-07-06 93 views
0

我被要求編寫一個PLSQL過程來「清理」數據庫中的代碼。這些代碼是varchar2,類似於00000001.它們在應用程序中隨處可見。我的新僱主希望我能夠使代碼更具可讀性,而00000001的代碼在所有使用地點都變爲1。PLSQL在整個數據庫中更改數據的過程

我的問題是怎麼會這樣呢?我要求澄清,但仍然不清楚,爲了害怕看起來愚蠢,我不會再問。任何指導將是受歡迎的

+0

嘿!你在談論表中定義的查找/配置值 - 將表中的值「0000001」更改爲1? –

+0

@ Sankar Krishnamoorthy,抱歉花了這麼長時間回覆我從來沒有收到任何關於您的評論的通知。我相信我在談論查找價值。這些值參考了系統使用的硬件片段,它們在連接和其他過程中都可以使用 – gaz07

+0

您可以在此處粘貼示例代碼嗎? 像00000001這樣的出現在表格的列中,或者它已經在包裹,程序代碼中硬編碼。 –

回答

0

讓我開始說,這聽起來像一個非常糟糕的想法!

,如果你堅持聽起來像是你將需要使用動態SQL具有的基本流程...

  • 查詢all_tab_cols得到列的列表(IM希望使用這些代碼把所有的列命名標準..即xxx_CD)
  • 遍歷標籤/ COLS,看看你的價值有沒有在該表中
  • 更新值...
  • 利潤?

然而,你被卡住的現實..如果代碼是在外鍵你不能只更新它。你必須創建一個新的父記錄..更新所有的孩子到新的父母,然後刪除舊的父母。

你需要非常清楚你想要達到的目標。更重要的是,它有沒有什麼價值?

我建議你從一個代碼值開始,以確定項目的大小。 手動開始編寫您需要的1代碼值,然後嘗試開始自動執行該代碼值。