Snowflake 过程的绑定变量给出意外错误“%”

问题描述 投票:0回答:1

在尝试调用此过程时,我始终在绑定变量 %s 周围收到错误。

CREATE OR REPLACE PROCEDURE insert_proc(
    x STRING,
    y_date DATE
)
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = '3.8'
HANDLER = 'insert_proc'
PACKAGES = ('snowflake-snowpark-python')
EXECUTE AS CALLER
AS
$$
def insert_proc(snowpark_session, x, y):

    snowpark_session.sql("INSERT INTO TABLE_NAME_HERE (X, Y_DATE"
        ") VALUES (%s, %s)", (x, y_date)).collect()

    return 'inserted successfully'
$$

这是它返回的错误。我在Python中使用sqlalchemy和snowflake.connector没有遇到同样的问题,所以我不知道为什么会遇到这个问题。

snowflake.snowpark.exceptions.SnowparkSQLException: (1304): 01b7dc70-0002-201f-0001-1f4e02a2d31e: 001003 (42000): SQL compilation error:
syntax error line 1 at position 155 unexpected '%'.
syntax error line 1 at position 159 unexpected '%'.

这是我对过程的调用

CALL insert_proc('999', '2024-10-17');
python database snowflake-cloud-data-platform
1个回答
0
投票

请找到工作存储过程:

CREATE OR REPLACE PROCEDURE insert_proc(
    x STRING,
    y_date DATE
)
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = '3.8'
HANDLER = 'insert_proc'
PACKAGES = ('snowflake-snowpark-python')
EXECUTE AS CALLER
AS
$$
def insert_proc(snowpark_session, x, y_date):

    snowpark_session.sql(f"INSERT INTO TABLE_NAME_HERE VALUES ('{x}', '{y_date}')").collect()

    return 'inserted successfully'
$$;
© www.soinside.com 2019 - 2024. All rights reserved.