首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL server python服务-“DECLARE @myscript NVARCHAR(MAX) = N‘”给出语法错误,可能的错误是什么?

SQL server python服务-“DECLARE @myscript NVARCHAR(MAX) = N‘”给出语法错误,可能的错误是什么?
EN

Stack Overflow用户
提问于 2019-05-24 13:51:34
回答 1查看 64关注 0票数 0

我使用带有python脚本的数据库内机器学习的SQL Server 2017,目标是运行机器学习模型。在一个PluralSight文件中学习“SQL Server上的Python入门”教程时,我声明了一个变量及其数据类型,并在其中输入了我的Python脚本。但是它在第一行抛出了一个语法错误。我的代码如下:

我正在按照教程编写语句。

代码语言:javascript
复制
DECLARE @myscript NVARCHAR(MAX) = N 

错误为:

代码语言:javascript
复制
DECLARE @myscript NVARCHAR(MAX) = N'
                             ^
SyntaxError: invalid syntax 

预期代码必须声明一个变量@myscript,然后我在定义输入代码时使用它。

下面是完整的代码

代码语言:javascript
复制
DECLARE @myscript NVARCHAR(MAX) = N'
import sys
sys.path += ["D:\\sql_queries"]
import ml_models as ms
mydf = ms.fill_na(mydf)
mydf = ms.backup_columns(mydf)
mydf = ms.shaping_df(mydf)
mydf = ms.normalising_numerical_mydf(mydf)
mydf = ms.date_to_datetime(mydf)
mydf = ms.split_years_months(mydf)
mydf = ms.replacing_strings_with_integers(mydf)
mydf = ms.type_casting(mydf)
mydf = ms.label_encoder(mydf)
mydf = ms.drop_unnecessary_features(mydf)
x_train, x_valid, x_test, y_train, y_valid = ms.seperate_train_test_validation(mydf)
y_pred_rf = ms.random_forest_model(x_train, y_train, x_valid, y_valid, x_test)
y_pred_ada = ms.adboost_model(x_train, y_train, x_valid, y_valid, x_test)
y_pred_xgb = ms.xgb_model(x_train, y_train, x_valid, y_valid, x_test)
y_pred_lgb = ms.light_gradient_boost_model(x_train, y_train, x_valid, y_valid, x_test)

predictions = y_pred_rf*0.3 + y_pred_ada*0.2 + y_pred_xgb*0.2 + y_pred_xgb*0.3
';

DECLARE @myquery NVARCHAR(MAX) = N'
select * from banktest.dbo.train
UNION ALL
select *, 6 as loan_default from banktest.dbo.test;'
;

DECLARE @predictions float;

EXEC sp_execute_external_script
    @language = N'Python'
    , @script = @myscript
    , @input_data_1 = @myquery
    , @input_data_1_name = N'mydf'
    , @output_data_1_name = N'predictions'
    , @parallel = 1
    , @params = N'@predictions float out'
    , @predictions = @predictions OUT
WITH RESULT SETS ((predicted_value nvarchar(MAX)));
EN

回答 1

Stack Overflow用户

发布于 2019-05-30 17:41:48

该错误是由于使用VS Code在python服务器上直接运行代码造成的。为了让它显示输出,我们必须通过Ctrl+Shift+P执行代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56286559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档