Re: SQLLDR

From: onedbguru <onedbguru_at_yahoo.com>
Date: Fri, 11 Feb 2011 14:04:16 -0800 (PST)
Message-ID: <39db7c1f-58ec-4bbb-83dc-70bb9c41a0e7_at_p11g2000vbq.googlegroups.com>


On Feb 9, 9:44 am, The Magnet <a..._at_unsu.com> wrote:
> Here is a weird one, I am using SQLLDR to load a comma delimited
> file.  The last column in the record is numeric.  If there is no
> trailing comma after the field, I get a numeric error.  If I place a
> trailing comma, everything loads fine??
>
> Any thoughts?  I provided a line of data and the control file.
>
> AXFN      ,ISHARS-MS AC-US,ETF  ,
> 24.95,24.95,0.32,2608,24.1,25.21,ISHARES MSCI ACWI EX US FINANCIALS
> SECTO,BLACKROCK                               ,MSCI ALL COUNTRY WORLD
> EX USA FINANCIALS,24.73,0.48,20101221,0,N/A
>
> LOAD DATA
> INFILE *
> TRUNCATE
> INTO TABLE etf_data
> FIELDS TERMINATED BY ','
> OPTIONALLY ENCLOSED BY '"'
> TRAILING NULLCOLS
>  (ticker                     "TRIM(:ticker)",
>   company_name               "TRIM(:company_name)",
>   etf_etn                    "TRIM(:etf_etn)",
>   daily_open_price           "CASE WHEN TRIM(:DAILY_OPEN_PRICE)='N/A'
> THEN NULL ELSE :DAILY_OPEN_PRICE END" ,
>   daily_low_price            "CASE WHEN TRIM(:DAILY_LOW_PRICE)='N/A'
> THEN NULL ELSE :DAILY_LOW_PRICE END" ,
>   weekly_dividend            "CASE WHEN TRIM(:WEEKLY_DIVIDEND)='N/A'
> THEN NULL ELSE :WEEKLY_DIVIDEND END" ,
>   monthly_volume             "CASE WHEN TRIM(:MONTHLY_VOLUME)='N/A'
> THEN NULL ELSE :MONTHLY_VOLUME END" ,
>   monthly_low_price          "CASE WHEN TRIM(:MONTHLY_LOW_PRICE)='N/A'
> THEN NULL ELSE :MONTHLY_LOW_PRICE END" ,
>   monthly_high_price         "CASE WHEN TRIM(:MONTHLY_HIGH_PRICE)='N/
> A' THEN NULL ELSE :MONTHLY_HIGH_PRICE END" ,
>   full_name                  "TRIM(:full_name)",
>   sponser                    "TRIM(:sponser)",
>   benchmark                  "TRIM(:benchmark)",
>   monthly_nav                "CASE WHEN TRIM(:MONTHLY_NAV)='N/A' THEN
> NULL ELSE :MONTHLY_NAV END" ,
>   annual_operating_expense   "CASE WHEN
> TRIM(:ANNUAL_OPERATING_EXPENSE)='N/A' THEN NULL
> ELSE :ANNUAL_OPERATING_EXPENSE END" ,
>   dividend_ex_date           "CASE WHEN
> TRIM(:DIVIDEND_EX_DATE)='----------' THEN NULL ELSE
> TO_DATE(:DIVIDEND_EX_DATE,'YYYYMMDD') END",
>   dividend_yield             "CASE WHEN TRIM(:DIVIDEND_YIELD)='N/A'
> THEN NULL ELSE :DIVIDEND_YIELD END" ,
>   etf_rank                   "CASE WHEN TRIM(:ETF_RANK)='N/A' THEN
> NULL ELSE :ETF_RANK END"
> )

My first and second thoughts would be to strongly encourage you the next time create a dummy test case and not post your companies data online- even if it is just one line. In most shops, this would get you fired. ans as David stated, enclose the last field in quotes OR do not provide a value at all

a,b,c,d, Received on Fri Feb 11 2011 - 23:04:16 CET

Original text of this message