在Stata中运行SQL

时间:2015-07-30 14:09:55

标签: sql stata

我正在尝试将数据从SQL Server管理工作室加载到Stata中。如何让Stata运行.sql文件?我在其他帖子中使用了-ado-程序,但由于我的数据库有用户名和密码,因此无效。

原始-ado-代码:

program define loadsql
*! Load the output of an SQL file into Stata, version 1.2 (dvmaster@gmail.com)
version 12.1
syntax using/, DSN(string) [CLEAR NOQuote LOWercase SQLshow ALLSTRing DATESTRing]

#delimit;
tempname mysqlfile exec line;

file open `mysqlfile' using `"`using'"', read text;
file read `mysqlfile' `line';

while r(eof)==0 {;
    local `exec' `"``exec'' ``line''"';
    file read `mysqlfile' `line';
};

file close `mysqlfile';


odbc load, exec(`"``exec''"') dsn(`"`dsn'"') `clear' `noquote' `lowercase' `sqlshow' `allstring' `datestring';

end;

1 个答案:

答案 0 :(得分:1)

help odbc讨论connect_options以连接到odbc数据源。其中两个是u(userId)p(password),可以添加到@Dimitriy V. Masterov编写的原始代码中(请参阅帖子here)。

我相信您应该能够使用SQL Server身份验证进行连接,方法是在ado文件中添加u(string)p(string)作为syntax后面的附加选项,然后在下面的< / p>

 odbc load, exec(`"``exec''"') dsn(`"`dsn'"')

这也需要您在调用它时将这些参数传递给程序:

loadsql using "./sqlfile.sql", dsn("mysqlodbcdata") u(userId) p(Password)