Sql 将输入参数作为值传递到存储过程中
我正在使用SQL(plpgsql)。我创建了一个存储过程,它接受一个类似于“DUMMYVAR”的Sql 将输入参数作为值传递到存储过程中,sql,amazon-web-services,stored-procedures,amazon-redshift,Sql,Amazon Web Services,Stored Procedures,Amazon Redshift,我正在使用SQL(plpgsql)。我创建了一个存储过程,它接受一个类似于“DUMMYVAR”的varchar值。我想使用输入值('DUMMYVAR')来填充表的整个列,然而,,当我尝试运行它时出现的输出错误,存储过程发出信号说'DUMMYVAR'不是列 下面是一个示例存储过程: CREATE OR REPLACE PROCEDURE my_procedure(myvar VARCHAR) AS $$ BEGIN INSERT INTO mytable (var1, var2, dumm
varchar
值。我想使用输入值('DUMMYVAR')来填充表的整个列,然而,,当我尝试运行它时出现的输出错误,存储过程发出信号说'DUMMYVAR'不是列
下面是一个示例存储过程:
CREATE OR REPLACE PROCEDURE my_procedure(myvar VARCHAR)
AS $$
BEGIN
INSERT INTO mytable (var1, var2, dummyvar)
SELECT 'HELLO', 'WORLD', myvar
FROM othertable;
END;
$$
假设othertable
中有5条记录,并且myvar='DUMMYVAR'
,我希望得到以下输出:
var1 var2 dummyvar
HELLO WORLD DUMMYVAR
HELLO WORLD DUMMYVAR
HELLO WORLD DUMMYVAR
HELLO WORLD DUMMYVAR
HELLO WORLD DUMMYVAR
对我来说似乎很好
创建临时表测试\u源(
行id整数标识
,col_1 VARCHAR
);
插入测试源(列1)
值('hello world')
,(“你好,世界”)
,(“你好,世界”)
,(“你好,世界”)
,(“你好,世界”)
;
创建临时表测试\u目标(
行id整数
,col_1 VARCHAR
,col_2 VARCHAR
);
创建或替换程序sp\U insert\U test(测试值VARCHAR)
作为$$
开始
插入测试目标(行id、列1、列2)
选择*,测试_值
来自测试源;
结束;
$$语言plpgsql;
;
调用sp_insert_test(“test-test-test”)
;
按1从测试目标顺序中选择*
;
行id |列1 |列2
--------+-------------+----------------
1 |你好世界|测试
2 |你好世界|测试
3 |你好世界|测试
4 |你好世界|测试
5 |你好世界|测试
INSERT语句指的是dummvar
,而不是dummyvar
——或者这是打字错误?如果手动运行INSERT
语句,是否有效?