BCP fails to export with error “Unable to resolve column level collation”

Deadly 提交于 2019-12-11 09:06:48

问题


I've thoroughly searched Stack Overflow as well as many other resources but still have an issue. Here's my export script, running under Cygwin:

#!/usr/bin/env bash
#-*- coding: cp1255; -*-
bcp "declare @billing_types table(k int null, t varchar(14)
    collate SQL_Latin1_General_CP1255_CI_AS)
insert @billing_types
values (null, 'לא פעיל')
       ,(1, 'אשרי')
       ,(2, 'צ׳ק')
       ,(3, 'הוראת קבע')

declare @standing_order_status table(i int null, s varchar(14)
    collate SQL_Latin1_General_CP1255_CI_AS)
insert @standing_order_status
values (null, 'אין')
       ,(4, 'מבותל')
       ,(3, 'לא מאושר')
       ,(2, 'ממתין')
       ,(1, 'מאושר')

select billing_company_id
      ,internal_company_name
      , t collate SQL_Latin1_General_CP1255_CI_AS as payment_type_string
      ,isnull(company_email, '') collate SQL_Latin1_General_CP1255_CI_AS as email
      ,company_fax
      ,company_address
      ,company_comments
      ,invoice_send_with_details
      ,invoice_send_fax
      ,invoice_print
      ,cc_name
      ,cc_number
      ,cc_cvv
      ,cc_id
      ,cc_expire
      ,bank_number
      ,bank_branch
      ,bank_account
      ,bank_hoshen
      ,s collate SQL_Latin1_General_CP1255_CI_AS
from billing_companies
join @billing_types bt on bt.k = payment_type
join @standing_order_status os on os.i = bank_standing_order_status" \
queryout  billing-companies.csv -t"," -r"\n" -S server -T \
-U user -P password -f ./billing-companies.fmt

Here's the format file:

9.0
20
1  BIGINT  0 1    ""  1  billing_company_id        ""
2  VARCHAR 0 1000 ""  2  internal_company_name     SQL_Latin1_General_CP1255_CI_AS
3  VARCHAR 0 14   ""  3  payment_type_string       SQL_Latin1_General_CP1255_CI_AS
4  VARCHAR 0 200  ""  4  email                     SQL_Latin1_General_CP1255_CI_AS
5  VARCHAR 0 100  ""  5  company_fax               SQL_Latin1_General_CP1255_CI_AS
6  VARCHAR 0 4000 ""  6  company_address           SQL_LATIN1_GENERAL_CP1255_CI_AS
7  NTEXT   0 1    ""  7  company_comments          SQL_LATIN1_GENERAL_CP1255_CI_AS
8  BIT     0 1    ""  8  invoice_send_with_details ""
9  BIT     0 1    ""  9  invoice_send_fax          ""
10 BIT     0 1    ""  10 invoice_print             ""
11 VARCHAR 0 200  ""  11 cc_name                   SQL_LATIN1_GENERAL_CP1255_CI_AS
12 VARCHAR 0 50   ""  12 cc_number                 SQL_LATIN1_GENERAL_CP1255_CI_AS
13 VARCHAR 0 50   ""  13 cc_cvv                    SQL_LATIN1_GENERAL_CP1255_CI_AS
14 VARCHAR 0 50   ""  14 cc_id                     SQL_LATIN1_GENERAL_CP1255_CI_AS
15 VARCHAR 0 50   ""  15 cc_expire                 SQL_LATIN1_GENERAL_CP1255_CI_AS
16 VARCHAR 0 100  ""  16 bank_number               SQL_LATIN1_GENERAL_CP1255_CI_AS
17 VARCHAR 0 100  ""  17 bank_branch               SQL_LATIN1_GENERAL_CP1255_CI_AS
18 VARCHAR 0 100  ""  18 bank_account              SQL_LATIN1_GENERAL_CP1255_CI_AS
19 INT     0 1    ""  19 bank_hoshen               ""
20 varchar 0 14   ""  20 standing_order_status     SQL_LATIN1_GENERAL_CP1255_CI_AS

The collation matches the collation in the database. When I run the query in the studio, I'm getting the expected result, no warnings.

Perhaps here's a caveat: the database uses single-byte prehistoric Hebrew encoding... and I'm not sure whether Cygwin, or anyone later after it isn't trying to convert between encodings. However I've doublechekced that I did my part properly. I.e. the script file is itself in cp-1255.

It works if I remove all mentions of Hebrew from the script. So, I'm guessing this must be the problem, however, I've no idea of how would I solve it.


回答1:


Have you tried using the -C switch to specify a specific code page?

Here's the BCP syntax page from Books Online:

http://msdn.microsoft.com/en-us/library/ms162802.aspx

Looking here, it looks like you may want to use code page 1255:

http://msdn.microsoft.com/en-us/library/ms186356(v=sql.105).aspx

HTH.



来源:https://stackoverflow.com/questions/15383511/bcp-fails-to-export-with-error-unable-to-resolve-column-level-collation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!