SQL Server выражение ненулевого типа, указанное в контексте, где ожидается условие - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно получить результат выбора в BigQuery, а затем использовать его для извлечения данных из базы данных на Sql Server. Я делаю этот процесс с использованием воздушного потока. Когда я пытаюсь использовать переменные в моем выборе, я нахожу ошибку, указанную ниже, мне кажется, что это проблема в запросе, но в моих тестах внутри SQL Server он работает, кто-нибудь знает, что это может быть?

def get_data_from_bigquery():
    """query bigquery to get data to import to PSQL"""
    bq = bigquery.Client(project='name_project')
    query = """
select max(col1) as col1, max(col2) as col2 from (
select 0 as col1, max(col2) as col2 from  dataset.tab1 where dtop > 
DATE_SUB(current_date(), INTERVAL 10 DAY)
union all
select max(col1) as col1, 0 as col2 from dataset.tab2 where dtop > DATE_SUB(current_date(), INTERVAL 10 DAY)) as a 
"""
    query_job = bq.query(query)
    data = query_job.result()
    rows = list(data)
    return rows

a = get_data_from_bigquery();
bet1   = str(a[0][0])
bet2 = str(a[0][1])

sql_query = """select a.id_op as id, \
    a.valormn as valormn, \
    a.fk_rem as rem_id \
    from tab_x as a, tab_y as b \
    where b.id = a.fk_rem AND \ 
(a.fk_rem between """  + bet1 + """  and """ + bet2 + """ and """ + bet1 + """ <= """ + bet2 + """) \
OR \
(a.id_op IS NULL and """ + bet1 +  """ > """  + bet2 + """)""" 


MsSql = MsSqlToGoogleCloudStorageOperator(
    task_id='import_orders',
    mssql_conn_id=mssql_conn,
    google_cloud_storage_conn_id='gcp_conn',
    sql=sql_query,
    bucket=nm_bucket,
    filename=nm_arquivo,
    schema_filename=sc_arquivo, 
    dag=dag) 

ProgrammingError: ('42000', "[42000] [Microsoft] [ODBC SQL Server Драйвер] [SQL Server] Выражение не-логического типа, указанное в контекст, где ожидается состояние, рядом с '('. (4145) (SQLExecDirectW) ")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...