在尝试调用此过程时,我始终在绑定变量 %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');
请找到工作存储过程:
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'
$$;