1

Sybase サーバーのテーブルから Oracle サーバー (Oracle 11g) の同じテーブルにデータをコピーしようとしています。2 つの異なる db サーバーがあるため、coldfusion Web プログラミングを使用する方が簡単だと思いました。残念ながら、Oracle から次のエラーが表示されました。私の構文が間違っているとは思いません。エラーが示すように、すべてのコンマがあり、欠落しているコンマがないためです。DATE データ型として設定されている DATE 列が原因である可能性があります。

エラーは次のとおりです。

Error Executing Database Query.  
[Macromedia][Oracle JDBC Driver][Oracle]ORA-00917: missing comma  

でエラーが発生しましたC:\Inetpub\wwwroot\test.cfm: line 65

63 :      #um_gs_dnrcnt_cfm_pp#,                                           
64 :      #um_gs_amt_cfm_pg_pp#,                                            
65 :      #um_gs_dnrcnt_cfm_pg_pp#)
66 :     </cfquery>
67 : </cfoutput>



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

SQLSTATE   HY000 
SQL    INSERT INTO um_gift_sum (um_gs_fyr, um_gs_inst, um_gs_dept, 
                                um_gs_dt_of_record, um_gs_fund_type, 
                                um_gs_dnr_type,
                                um_gs_amt_cash, um_gs_dnrcnt_cash, um_gs_amt_pl,
                                um_gs_dnrcnt_pl, um_gs_amt_pp, um_gs_dnrcnt_pp,  
                                um_gs_amt_pp_prior, um_gs_dnrcnt_pp_prior, 
                                um_gs_amt_gik, um_gs_dnrcnt_gik, 
                                um_gs_amt_pg_cash, 
                                um_gs_dnrcnt_pg_cash, um_gs_amt_pg_pl, 
                                um_gs_dnrcnt_pg_pl, um_gs_amt_pg_pp, 
                                um_gs_dnrcnt_pg_pp, um_gs_amt_gft_mtch, 
                                um_gs_dnrcnt_gft_mtch, um_gs_amt_cfm_pp, 
                                um_gs_dnrcnt_cfm_pp, um_gs_amt_cfm_pg_pp,  
                                um_gs_dnrcnt_cfm_pg_pp) 
       VALUES('1995', 'AB', 'MAA', 1995-01-31 00:00:00.0, '1', 'FR', 100.0000, 0,
              0.0000, 0, 0.0000, 0, 0.0000, 0, 0.0000, 0, 0.0000, 0, 0.0000, 0, 
              0.0000, 0, 0.0000, 0, 0.0000, 0, 0.0000, 0)  

これが私の挿入ステートメントです:

<cfquery name="x" datasource="SybaseDB">                   
 SELECT TOP 10 * FROM um_sum                               
</cfquery>                                                 

<cfoutput query="x">                                       

  <cfquery name="Y" datasource="OracleDB">                 
  INSERT INTO um_sum (um_gs_fyr,                           
                 m_gs_inst,                                  
                      um_gs_dept,                          
                      um_gs_dt_of_record,                  
                      um_gs_fund_type,                     
            um_gs_dnr_type,                                     

            etc,                                                 

            um_gs_dnrcnt_cfm_pp,                              
            um_gs_amt_cfm_pg_pp,                              
                 um_gs_dnrcnt_cfm_pg_pp)                    
    VALUES('#um_gs_fyr#',                                    
                '#um_gs_inst#',                                 
                '#um_gs_dept#',                                 
    #um_gs_dt_of_record#,    <---- this is date datatype, 
                                   I suspect this may be the problem?          
                '#um_gs_fund_type#',                            
                '#um_gs_dnr_type#',                             
    #um_gs_amt_cash#,                                        
                    #um_gs_dnrcnt_cash#,                         
                    #um_gs_amt_pl#,                              
                    #um_gs_dnrcnt_pl#,                           
                    #um_gs_amt_pp#,                              
                    #um_gs_dnrcnt_pp#,                           
                    #um_gs_amt_pp_prior#,                        
                    #um_gs_dnrcnt_pp_prior#,                     
                    #um_gs_amt_gik#,                             
                    #um_gs_dnrcnt_gik#,                          
                    #um_gs_amt_pg_cash#,                         
                    #um_gs_dnrcnt_pg_cash#,                      
                    #um_gs_amt_pg_pl#,                           
                    #um_gs_dnrcnt_pg_pl#,                        
                    #um_gs_amt_pg_pp#,                           
                    #um_gs_dnrcnt_pg_pp#,                        
                    #um_gs_amt_gft_mtch#,                        
                    #um_gs_dnrcnt_gft_mtch#,                     

         #um_gs_amt_cfm_pp#,                               

         #um_gs_dnrcnt_cfm_pp#,                            
                    #um_gs_amt_cfm_pg_pp#,                       
    #um_gs_dnrcnt_cfm_pg_pp#)                                
    </cfquery>                                             
</cfoutput>
4

1 に答える 1

3

この部分は、シングル クォーテーションで適切に囲まれていません。

AA', 1995-01-31 00:00:00.0, '1'

(コメントに基づいて)編集 します一重引用符で修正できない場合は、to_date()関数で日付形式を明示的に宣言できます

于 2012-09-04T13:27:28.497 に答える