需要开发一个存储过程以将值插入表中。考虑该表有5列,其中并非所有列值都是用户输入所必需的。存储过程的DDL将类似于
创建或替换过程UPDATE_EMPLOYEE_INFO
(IN EMPLOYEE_NUMBER CHAR(10),
IN EMP_DEPT CHAR(3),
IN PHONE_NUMBER CHAR(4),
IN JOB CHAR(8),
IN ELEVEL SMALLINT)
开始
---在此处插入查询---
结束
可以使用命令执行此过程
致电UPDATE_EMPLOYEE_INFO(1,'',1234567890,'admin','')
但是,列EMP_DEPT和ELEVEL不是必须具有值的必填字段。我该如何在存储过程调用中提及采用如下所示的默认值。
致电UPDATE_EMPLOYEE_INFO(1,DEFAULT,1234567890,'admin',DEFAULT)。
基本上,我想使用Teradata-https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/sqlp/rbafyprocdefaults.htm
答案 0 :(得分:1)
没有可选参数。所有参数都是必需的。因此,您可能必须将可选参数传递为null,然后根据参数是否为null来向存储的proc中写入一些条件逻辑。
例如:
CALL UPDATE_EMPLOYEE_INFO(1,NULL,1234567890,'admin',NULL)
Teradata文档说:
用于指定输入和输出参数的规则
由输入和输出参数组成的调用参数必须为 带有CALL语句提交。不能使用默认参数值 在创建过程时定义; CALL返回错误 如果未指定必需的调用参数。