2016-02-01 2 views
0

Я пытаюсь выполнить sql-запрос из stata, через ODBC. Некоторые имена столбцов содержат пробелы.Запрос stata odbc с пробелами в именах столбцов

Stata хочет заменить пробелы символами подчеркивания, которые не работают. Если я попытался сбежать из пробелов, убегите в цитировании имени столбца, ни один из которых не работает.

В приведенном ниже примере имя столбца - «Код типа программы».

odbc load, exec("SELECT ReportEffectiveDate, Program_Type_Code, CWIN FROM 
McDreamIndvReport WHERE ReportEffectiveDate > '20140701' and  
ReportEffectiveDate<'20150801'") dsn("HSAReports") 

Другие команды Stata ODBC, кажется, позволяют привести таблицы или столбцы с пробелами в них, но Exec ожидает строку в кавычках, и избежать кавычки (\ «Program Type Code \») не работает.

Любые предложения?

спасибо!

+0

Пространства являются незаконными в именах переменных Stata поэтому он будет автоматически заменить пробелы символом подчеркивания. Что касается чтения таблицы в Stata с использованием 'odbc load, exec', вы можете попробовать добавить квадратные скобки (' 'и' '') вокруг имени столбца – ander2ed

+0

Да, скобки работали отлично - именно то, что я искал, благодаря! Если вы напишете это как ответ, я могу отметить его принятым. –

ответ

1

Пробелы являются незаконными в именах переменных Stata, поэтому они будут заменены знаком подчеркивания, когда вы читаете данные из ODBC-ссылки независимо, но для чтения данных, если в исходной таблице ODBC есть пробелы в именах столбцов, вы можете добавьте квадратные скобки ([ и ]) вокруг имени с пробелами.

В вашем примере, это было бы:

#delimit ; 
odbc load, exec("SELECT ReportEffectiveDate, [Program Type Code], CWIN 
    FROM McDreamIndvReport 
    WHERE ReportEffectiveDate > '20140701' and ReportEffectiveDate<'20150801'") 
dsn("HSAReports"); 
Смежные вопросы