Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблемы с schema.ini  [new]
Avtaev Nikolai
Member

Откуда: Россия
Сообщений: 111
При работе через linked server к каталогу в котором расположены файлы CSV создается файл с описанием формата schema.ini.

[Customer.csv]
Format=Delimited(;)
ColNameHeader=True
Col1=Customer_ID Text Width 20
Col2=Customer_Name_RU Text Width 255
Col3=Customer_Name_EN Text Width 255
Col4=City_Name Text Width 255
Col5=Region_Name Text Width 255
Col6=Deleted Text Width 20


Пример строк данных файла:

Customer_ID;Customer_Name_RU;Customer_Name_EN;City_Name;Region_Name;Deleted
10012195;ОАО "Фармимэкс";Pharmimex;Москва;;
10012196;ООО "Биотэк";Biotek;Москва;;

Но запросы по этой таблицы неадекватны (данные пропадают после первого же символа двойных кавычек)

Customer_ID Customer_Name_RU Customer_Name_EN City_Name Region_Name Deleted
-------------------- ---------------- ---------------- --------- ----------- -------
10012195 ОАО NULL NULL NULL NULL
10012196 ООО NULL NULL NULL NULL

Возможно ли это исправить и как?
12 янв 09, 15:30    [6672923]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
Coding=ANSI
12 янв 09, 15:32    [6672946]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
CharacterSet=ANSI

конечно :)
12 янв 09, 15:33    [6672964]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
Avtaev Nikolai
Member

Откуда: Россия
Сообщений: 111
Konst_One
CharacterSet=ANSI

конечно :)


Пробовал, не помогает
12 янв 09, 15:40    [6673039]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
Avtaev Nikolai
Member

Откуда: Россия
Сообщений: 111
Скрипт создания линка

exec master.dbo.sp_addlinkedserver 
	 @server = @psLinkName
	,@srvproduct = N'Jet 4.0'
	,@provider = N'Microsoft.Jet.OLEDB.4.0'
	,@datasrc = @psDirectory
	,@location = NULL
	,@provstr = N'Text'
exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = @psLinkName, @locallogin = NULL , @useself = N'False', @rmtuser = N''

exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'collation compatible', @optvalue=N'true'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'data access', @optvalue=N'true'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'dist', @optvalue=N'false'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'pub', @optvalue=N'false'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'rpc', @optvalue=N'true'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'rpc out', @optvalue=N'true'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'sub', @optvalue=N'true'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'connect timeout', @optvalue=N'0'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'collation name', @optvalue=null
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'lazy schema validation', @optvalue=N'false'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'query timeout', @optvalue=N'0'
exec master.dbo.sp_serveroption @server=@psLinkName, @optname=N'use remote collation', @optvalue=N'false'
12 янв 09, 15:43    [6673061]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
Avtaev Nikolai
Member

Откуда: Россия
Сообщений: 111
Я конечно выкрутился:
SELECT F.*
FROM OPENROWSET(BULK 'С:\SD901_01_Customer.csv', 
FORMATFILE = 'С:\SD901_01_Customer.fmt', FIRSTROW = 2, MAXERRORS = 1000000, ERRORFILE = 'С:\SD901_01_Customer.err' ) AS F

С:\SD901_01_Customer.fmt
9.0
6
1       SQLCHAR       0       20     ";"   	1     Customer_ID	Cyrillic_General_CI_AS
2       SQLCHAR       0       255    ";"   	2     Customer_Name_RU	Cyrillic_General_CI_AS
3       SQLCHAR       0       255    ";"   	3     Customer_Name_EN	Cyrillic_General_CI_AS
4       SQLCHAR       0       255    ";"   	4     City_Name		Cyrillic_General_CI_AS
5       SQLCHAR       0       255    ";"   	5     Region_Name	Cyrillic_General_CI_AS
6       SQLCHAR       0       20     "\r\n"	6     Deleted		Cyrillic_General_CI_AS


Но тем не менее, вопрос по SCHEMA.INI не снимается. Может кто уже решал проблему двойных кавычек?
12 янв 09, 16:53    [6673664]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
Avtaev Nikolai
Member

Откуда: Россия
Сообщений: 111
Чтобы другие не искали

http://msdn.microsoft.com/en-us/library/ms709353.aspx
Specifying the File Format
The Format option in Schema.ini specifies the format of the text file. The Text IISAM can read the format automatically from most character-delimited files. You can use any single character as a delimiter in the file except the double quotation mark ("). The Format setting in Schema.ini overrides the setting in the Windows Registry, file by file. The following table lists the valid values for the Format option.

Format specifier  Table format  Schema.ini Format statement  
Tab Delimited 
 Fields in the file are delimited by tabs.
 Format=TabDelimited
 
CSV Delimited 
 Fields in the file are delimited by commas (comma-separated values).
 Format=CSVDelimited
 
Custom Delimited 
 Fields in the file are delimited by any character you choose to input into the dialog box. [b]All except the double quotation marks (") are allowed, including blank.[/b]
 Format=Delimited(custom character)

-or-

With no delimiter specified:

Format=Delimited( )
 
Fixed Length 
 Fields in the file are of a fixed length.
 Format=FixedLength
 

13 янв 09, 13:01    [6677575]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
iVovik
Member

Откуда:
Сообщений: 1
Я решил проблему импорта таких файлов, добавив в schema.ini
TextDelimiter=`
Предполагается, что символ ` в импортируемом файле не встречается.
4 мар 09, 13:03    [6885737]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с schema.ini  [new]
Kasher
Member

Откуда: Подмосковье
Сообщений: 173
iVovik
Я решил проблему импорта таких файлов, добавив в schema.ini
TextDelimiter=`
Предполагается, что символ ` в импортируемом файле не встречается.


Господи! Спасибо, что есть добрые и умные люди!!! была такая же проблема и благодаря этой теме решилась))))
3 сен 09, 11:07    [7611869]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить