procedures
Creates, updates, deletes, gets or lists a procedures
resource.
Overview
Name | procedures |
Type | Resource |
Id | snowflake.procedure.procedures |
Fields
Name | Datatype | Description |
---|---|---|
name | string | Name of the procedure |
arguments | array | List of arguments for the function/procedure |
body | string | Function/procedure definition |
comment | string | Specifies a comment for the function/procedure |
created_on | string | The date and time when the function/procedure was created |
database_name | string | The name of the database in which the function/procedure exists. |
execute_as | string | What permissions should the procedure execution be called with |
is_builtin | boolean | If the function/procedure is built-in or not (user-defined) |
is_secure | boolean | Specifies whether the function/procedure is secure or not |
language_config | object | |
max_num_arguments | integer | The maximum number of arguments |
min_num_arguments | integer | The minimum number of arguments |
owner | string | Role that owns the function/procedure |
owner_role_type | string | The type of role that owns the function/procedure |
return_type | object | |
schema_name | string | The name of the schema in which the function/procedure exists. |
Methods
Name | Accessible by | Required Params | Optional Params | Description |
---|---|---|---|---|
fetch_procedure | SELECT | database_name, nameWithArgs, schema_name, endpoint | - | Fetch a procedure |
list_procedures | SELECT | database_name, schema_name, endpoint | like | List procedures |
create_procedure | INSERT | database_name, schema_name, data__arguments, data__body, data__language_config, data__name, data__return_type, endpoint | createMode , copyGrants | Create a procedure |
delete_procedure | DELETE | database_name, nameWithArgs, schema_name, endpoint | ifExists | Delete a procedure |
call_procedure | EXEC | database_name, nameWithArgs, schema_name, data__call_arguments, endpoint | - | Call a procedure |
Optional Parameter Details
Name | Description | Type | Default |
---|---|---|---|
copyGrants | Query parameter to enable copy grants when creating the object. | boolean | false |
createMode | Query parameter allowing support for different modes of resource creation. Possible values include: - errorIfExists : Throws an error if you try to create a resource that already exists. - orReplace : Automatically replaces the existing resource with the current one. - ifNotExists : Creates a new resource when an alter is requested for a non-existent resource. | string | errorIfExists |
ifExists | Query parameter that specifies how to handle the request for a resource that does not exist: - true : The endpoint does not throw an error if the resource does not exist. It returns a 200 success response, but does not take any action on the resource. - false : The endpoint throws an error if the resource doesn't exist. | boolean | false |
like | Query parameter to filter the command output by resource name. Uses case-insensitive pattern matching, with support for SQL wildcard characters. | string | - |
SELECT
examples
- list_procedures
- fetch_procedure
List procedures
SELECT
name,
arguments,
body,
comment,
created_on,
database_name,
execute_as,
is_builtin,
is_secure,
language_config,
max_num_arguments,
min_num_arguments,
owner,
owner_role_type,
return_type,
schema_name
FROM snowflake.procedure.procedures
WHERE database_name = '{{ database_name }}'
AND schema_name = '{{ schema_name }}'
AND endpoint = '{{ endpoint }}';
Fetch a procedure
SELECT
name,
arguments,
body,
comment,
created_on,
database_name,
execute_as,
is_builtin,
is_secure,
language_config,
max_num_arguments,
min_num_arguments,
owner,
owner_role_type,
return_type,
schema_name
FROM snowflake.procedure.procedures
WHERE database_name = '{{ database_name }}'
AND nameWithArgs = '{{ nameWithArgs }}'
AND schema_name = '{{ schema_name }}'
AND endpoint = '{{ endpoint }}';
INSERT
example
Create a procedure
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO snowflake.procedure.procedures (
data__name,
data__execute_as,
data__is_secure,
data__arguments,
data__return_type,
data__language_config,
data__comment,
data__body,
database_name,
schema_name,
endpoint
)
SELECT
'{{ name }}',
'{{ execute_as }}',
{{ is_secure }},
'{{ arguments }}',
'{{ return_type }}',
'{{ language_config }}',
'{{ comment }}',
'{{ body }}',
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}'
;
/*+ create */
INSERT INTO snowflake.procedure.procedures (
data__name,
data__arguments,
data__return_type,
data__language_config,
data__body,
database_name,
schema_name,
endpoint
)
SELECT
'{{ name }}',
'{{ arguments }}',
'{{ return_type }}',
'{{ language_config }}',
'{{ body }}',
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}'
;
# Description fields below are for documentation purposes only and are not required in the manifest
- name: procedures
props:
- name: database_name
value: string
description: Required parameter for the procedures resource.
- name: schema_name
value: string
description: Required parameter for the procedures resource.
- name: endpoint
value: string
description: Required parameter for the procedures resource.
- name: name
value: string
description: Name of the procedure (Required parameter for the procedures resource.)
- name: execute_as
value: string
description: >-
What permissions should the procedure execution be called with (valid
values: 'CALLER', 'OWNER')
- name: is_secure
value: boolean
description: Specifies whether the function/procedure is secure or not
- name: arguments
value:
- name: name
value: string
description: Argument name
- name: datatype
value: string
description: >-
Argument data type (valid values: 'ARRAY', 'BIGINT', 'BINARY',
'BOOLEAN', 'BYTEINT', 'CHAR', 'CHARACTER', 'DATE', 'DATETIME',
'DECIMAL', 'DOUBLE', 'DOUBLE PRECISION', 'FLOAT', 'FLOAT4',
'FLOAT8', 'GEOGRAPHY', 'GEOMETRY', 'INT', 'INTEGER', 'NUMBER',
'NUMERIC', 'OBJECT', 'REAL', 'STRING', 'SMALLINT', 'TEXT', 'TIME',
'TIMESTAMP_LTZ', 'TIMESTAMP_NTZ', 'TIMESTAMP_TZ', 'TINYINT',
'VARBINARY', 'VARCHAR', 'VARIANT', 'VECTOR')
- name: default_value
value: string
description: Default value of the argument
description: >-
List of arguments for the function/procedure (Required parameter for the
procedures resource.)
- name: return_type
value:
type: string
description: Required parameter for the procedures resource.
- name: language_config
value:
language: string
called_on_null_input: boolean
description: Required parameter for the procedures resource.
- name: comment
value: string
description: Specifies a comment for the function/procedure
- name: body
value: string
description: >-
Function/procedure definition (Required parameter for the procedures
resource.)
DELETE
example
Delete a procedure
/*+ delete */
DELETE FROM snowflake.procedure.procedures
WHERE database_name = '{{ database_name }}'
AND nameWithArgs = '{{ nameWithArgs }}'
AND schema_name = '{{ schema_name }}'
AND endpoint = '{{ endpoint }}';