【发布时间】:2019-05-30 06:08:25
【问题描述】:
我需要生成这样的查询
SELECT max(batch_sk) INTO ln_batch FROM test_app.table WHERE categ_cd = 'ABC' ;
这个“ABC”将作为过程(in_code)中的输入参数出现。 我尝试了下面提到的查询的不同版本,但没有得到正确的查询。
SET lv_query ='SELECT max(batch_sk) INTO ln_batch FROM test_app.table WHERE categ_cd = ''''||in_code||'';
如何在查询中包含那些 '?
【问题讨论】:
-
字符串中的引号必须加倍:
'SELECT max(batch_sk) INTO ln_batch FROM test_app.table WHERE categ_cd = '''||in_code||'''' -
非常感谢您的澄清。包含时间戳列是否有任何特定规则?我在程序开始时选择了这个。选择 CURRENT_TIMESTAMP(0) 进入 ld_start_ts ;然后我试图在程序结束时更新 - SET lv_query ='UPDATE test_abc SET seq_nr='||ln_seq_nr||' , start_ts='''ld_start_ts ''' where Categ_Cd='''||lv_categ_cd||'''' ;如果时间戳存在,则在编译时抛出错误。
-
COMPILE TIME ERROR : 编译时报错 ---------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------------- SPL1026:E(L606),无效或缺少表达式'E(5407):日期时间或间隔的无效操作。'。