我需要生成这样的查询
从test_app.table中选择max(batch_sk)INTO ln_batch在哪里categ_cd ='ABC';
此“ ABC”作为过程(输入代码)中的输入参数出现。 我尝试了以下提到的查询的不同版本,但没有获得正确的查询。
SET lv_query ='SELECT max(batch_sk)INTO ln_batch来自test_app.table WHATE categ_cd =''''|| in_code ||'';
如何在查询中包括那些'?
答案 0 :(得分:0)
这里有些错误。
CAST
或TO_CHAR
等进行转换。 SELECT … INTO
不允许用作动态SQL。也许带有宿主变量的参数化静态SQL?
SELECT max(batch_sk) INTO ln_batch FROM test_app.table WHERE categ_cd=:in_code;
否则,您需要一个动态游标才能将值作为文字提供
DECLARE lv_cur CURSOR for lv_stmt;
SET lv_query ='SELECT max(batch_sk) FROM test_app.table WHERE categ_cd = '''||in_code||'''';
PREPARE lv_stmt FROM lv_query;
OPEN lv_cur;
FETCH lv_cur INTO ln_batch;
CLOSE lv_cur;