2016-06-01 722 views
0

我想製作一個表,但我得到重複的列名錯誤。獲取ORA-00957:重複的列名稱,同時創建表

的My Oracle查詢是以下

 CREATE TABLE CCILDBDEV.TRN_FYC_FWD_UP 
     (
      Tran_Reference varchar2(100) , 
      Related_Tran_Ref varchar2(100) , 
      Client_Name varchar2(100) , 
      Client_ID varchar2(100) , 
      Transaction_Type varchar2(100) , 
      Trade_Date varchar2(100) , 
      Trade_Time_Stamp varchar2(100) , 
      Buy_Currency_Code varchar2(100) , 
      Buy_Currency_Amount varchar2(100) , 
      Sell_Currency_Code varchar2(100) , 
      Sell_Currency_Amount varchar2(100) , 
      Exchange_Rate varchar2(100) , 
      Value_Dates_From varchar2(100) , 
      Value_Dates_To varchar2(100) , 
      Premium_Fwd_premium varchar2(100) , 
      Spot_Rate varchar2(100) , 
      Purpose varchar2(100) , 
      Remarks varchar2(100) , 
      UTILSCAN_Trade_Date varchar2(100) , 
      UTIL_SCAN_Settlement_Date varchar2(100) , 
      UTILSCAN_Buy_Cur_Code varchar2(100) , 
      UTILSCAN_Buy_Cur_Amount varchar2(100) , 
      UTILSCAN_Sell_Cur_Code varchar2(100) , 
      UTILSCAN_Sell_Cur_Amount varchar2(100) , 
      Cons_Currency_Code varchar2(100) , 
      Cons_Currency_Amount varchar2(100) , 
      SCAN_Rate varchar2(100) , 
      Swap_Cost varchar2(100) , 
      Cons_Settlement_Indicator varchar2(100) , 
      Outsd_Buy_Currency_Code varchar2(100) , 
      Outd_Buy_Amount varchar2(100) , 
      Outsd_Sell_Currency_Code varchar2(100) , 
      Outsd_Sell_Amount varchar2(100) , 
      Extended_Expiry_Date varchar2(100) , 
      Rep_Date_and_Time varchar2(100) , 
      Mat_Date_and_Time varchar2(100) , 
      Deal_Status varchar2(100) , 

      PYMNTDT1 varchar2(100) , 
      PYMNTAMNT1 varchar2(100) , 

      PYMNTDT2 varchar2(100) , 
      PYMNTAMNT2 varchar2(100) , 

      PYMNTDT3 varchar2(100) , 
      PYMNTAMNT3 varchar2(100) , 

      PYMNTDT4 varchar2(100) , 
      PYMNTAMNT4 varchar2(100) , 

      PYMNTDT5 varchar2(100) , 
      PYMNTAMNT5 varchar2(100) , 

      PYMNTDT6 varchar2(100) , 
      PYMNTAMNT6 varchar2(100) , 

      PYMNTDT7 varchar2(100) , 
      PYMNTAMNT7 varchar2(100) , 

      PYMNTDT8 varchar2(100) , 
      PYMNTAMNT8 varchar2(100) , 

      PYMNTDT9 varchar2(100) , 
      PYMNTAMNT9 varchar2(100) , 

      PYMNTDT10 varchar2(100) , 
      PYMNTAMNT10 varchar2(100) , 


      PYMNTDT11 varchar2(100) , 
      PYMNTAMNT11 varchar2(100) , 
      PYMNTDT12 varchar2(100) , 
      PYMNTAMNT12 varchar2(100) , 
      PYMNTDT13 varchar2(100) , 
      PYMNTAMNT13 varchar2(100) , 
      PYMNTDT14 varchar2(100) , 
      PYMNTAMNT14 varchar2(100) , 
      PYMNTDT15 varchar2(100) , 
      PYMNTAMNT15 varchar2(100) , 
      PYMNTDT16 varchar2(100) , 
      PYMNTAMNT16 varchar2(100) , 
      PYMNTDT17 varchar2(100) , 
      PYMNTAMNT17 varchar2(100) , 
      PYMNTDT18 varchar2(100) , 
      PYMNTAMNT18 varchar2(100) , 
      PYMNTDT19 varchar2(100) , 
      PYMNTAMNT19 varchar2(100) , 
      PYMNTDT20 varchar2(100) , 
      PYMNTAMNT20 varchar2(100) , 
      PYMNTDT21 varchar2(100) , 
      PYMNTAMNT21 varchar2(100) , 
      PYMNTDT22 varchar2(100) , 
      PYMNTAMNT22 varchar2(100) , 
      PYMNTDT23 varchar2(100) , 
      PYMNTAMNT23 varchar2(100) , 
      PYMNTDT24 varchar2(100) , 
      PYMNTAMNT24 varchar2(100) , 
      PYMNTDT25 varchar2(100) , 
      PYMNTAMNT25 varchar2(100) , 
      PYMNTDT26 varchar2(100) , 
      PYMNTAMNT26 varchar2(100) , 
      PYMNTDT27 varchar2(100) , 
      PYMNTAMNT27 varchar2(100) , 
      PYMNTDT28 varchar2(100) , 
      PYMNTAMNT28 varchar2(100) , 
      PYMNTDT29 varchar2(100) , 
      PYMNTAMNT29 varchar2(100) , 
      PYMNTDT30 varchar2(100) , 
      PYMNTAMNT30 varchar2(100) , 
      PYMNTDT31 varchar2(100) , 
      PYMNTAMNT31 varchar2(100) , 
      PYMNTDT32 varchar2(100) , 
      PYMNTAMNT32 varchar2(100) , 
      PYMNTDT33 varchar2(100) , 
      PYMNTAMNT33 varchar2(100) , 
      PYMNTDT34 varchar2(100) , 
      PYMNTAMNT34 varchar2(100) , 
      PYMNTDT35 varchar2(100) , 
      PYMNTAMNT35 varchar2(100) , 
      PYMNTDT36 varchar2(100) , 
      PYMNTAMNT36 varchar2(100) , 
      PYMNTDT37 varchar2(100) , 
      PYMNTAMNT37 varchar2(100) , 
      PYMNTDT38 varchar2(100) , 
      PYMNTAMNT38 varchar2(100) , 
      PYMNTDT39 varchar2(100) , 
      PYMNTAMNT39 varchar2(100) , 
      PYMNTDT40 varchar2(100) , 
      PYMNTAMNT40 varchar2(100) , 
      PYMNTDT41 varchar2(100) , 
      PYMNTAMNT41 varchar2(100) , 
      PYMNTDT42 varchar2(100) , 
      PYMNTAMNT42 varchar2(100) , 
      PYMNTDT43 varchar2(100) , 
      PYMNTAMNT43 varchar2(100) , 
      PYMNTDT44 varchar2(100) , 
      PYMNTAMNT44 varchar2(100) , 
      PYMNTDT45 varchar2(100) , 
      PYMNTAMNT45 varchar2(100) , 
      PYMNTDT46 varchar2(100) , 
      PYMNTAMNT46 varchar2(100) , 
      PYMNTDT47 varchar2(100) , 
      PYMNTAMNT47 varchar2(100) , 
      PYMNTDT48 varchar2(100) , 
      PYMNTAMNT48 varchar2(100) , 
      PYMNTDT49 varchar2(100) , 
      PYMNTAMNT49 varchar2(100) , 
      PYMNTDT50 varchar2(100) , 
      PYMNTAMNT50 varchar2(100) , 
      PYMNTDT51 varchar2(100) , 
      PYMNTAMNT51 varchar2(100) , 
      PYMNTDT52 varchar2(100) , 
      PYMNTAMNT52 varchar2(100) , 

      UPLOADED_USER  NUMBER(4), 
      UPLOADED_DATE  DATE, 
      REMARKS   VARCHAR2(100 BYTE) 
     ); 

在運行上面給出的查詢,出現以下錯誤,我不知道我哪裏做錯了。請幫助我的人 錯誤:獲取ORA-00957:重複列名

+0

如何輕鬆找到重複列?有沒有可能通過使用任何工具找到? –

+0

您的SQL工具應該將您指向發生錯誤的行。另外:有52個「PYMNTAMNT」和「PYMNTDT」列很可能是一個非常糟糕的設計。創建一個適當的一對多關係。並且其中包含「Date_and_Time」的列應該定義爲「日期」或時間戳。 ***不要***以'varchar'存儲日期。並且一個名爲'amount'或'rate'的列應該被定義爲'number'。 ***不要***將數字存儲爲'varchar' –

+0

您有'REMARKS'和'Remarks'複製該列。 –

回答

2

Remarks這裏是重複的列。

要輕鬆查找重複項,請首先在Developer中運行查詢。它會向您顯示打出錯誤信息的行號。

獲取行號並獲取列名稱。使用任何文本編輯器來搜索列名稱。如果您在某處遇到該名稱,請將其刪除。

結束。

2

你有兩個remarks

REMARKS VARCHAR2(100 BYTE) 
Remarks varchar2(100) , 
4

重複的是言論。不同的大寫字母,但這並不重要,除非你使用雙引號,這是一個壞主意。

您可能想重新考慮您的表格結構,付款日期和金額不應保留在這麼多列中。還有其他問題,但這是最明顯的問題。