저장 프로시저 만들기 및 호출하기¶
SQL API를 사용하여 저장 프로시저를 만들고 호출할 수 있습니다. 다음은 테이블 이름을 전달하고 해당 테이블의 행 수를 반환하는 새 저장 프로시저를 만드는 POST 요청 본문의 예입니다.
{
"statement": "create or replace procedure sql_api_stored_proc(table_name varchar) returns varchar language javascript as $$var sql_command = \"select count(*) from \" + TABLE_NAME; var rs = snowflake.execute({sqlText: sql_command}); rs.next(); var rowCount = rs.getColumnValue(1); return rowCount; $$;",
"role": "MY_ROLE",
"warehouse": "MY_WAREHOUSE",
"database": "MY_DB",
"schema": "MY_SCHEMA"
}
다음은 이 요청에 대한 응답 본문의 예입니다.
{
"resultSetMetaData": {
"numRows": 1,
"format": "jsonv2",
"rowType": [ {
"name": "status",
"database": "",
"schema": "",
"table": "",
"type": "text",
"byteLength": 16777216,
"scale": null,
"precision": null,
"nullable": true,
"collation": null,
"length": 16777216
} ]
},
"data": [ [ "Function SQL_API_STORED_PROC successfully created." ] ],
"code": "090001",
"statementStatusUrl": "/api/v2/statements/019c9f28-0502-f257-0000-438300e0a02a?requestId=...",
"sqlState": "00000",
"statementHandle": "019c9f28-0502-f257-0000-438300e0a02a",
"message": "Statement executed successfully.",
"createdOn": 1622494569592
}
다음은 저장 프로시저를 호출하고 테이블 이름 “prices”를 전달하는 POST 요청 본문의 예입니다.
{
"statement": "call sql_api_stored_proc('prices');",
"role": "MY_ROLE",
"warehouse": "MY_WAREHOUSE",
"database": "MY_DB",
"schema": "MY_SCHEMA"
}
다음은 이 요청에 대한 응답 본문의 예입니다.
{
"resultSetMetaData": {
"numRows": 1,
"format": "jsonv2",
"rowType": [ {
"name": "SQL_API_STORED_PROC",
"database": "",
"schema": "",
"table": "",
"type": "text",
"byteLength": 16777216,
"length": 16777216,
"scale": null,
"precision": null,
"nullable": true,
"collation": null
} ]
},
"data": [ [ "4" ] ],
"code": "090001",
"statementStatusUrl": "/api/v2/statements/019c9f2a-0502-f244-0000-438300e04496?requestId=...",
"sqlState": "00000",
"statementHandle": "019c9f2a-0502-f244-0000-438300e04496",
"message": "Statement executed successfully.",
"createdOn": 1622494718694
}