Re: SQLLDR
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