首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scriptella,jexl中的特殊字符

Scriptella,jexl中的特殊字符
EN

Stack Overflow用户
提问于 2012-11-12 15:28:36
回答 1查看 1.1K关注 0票数 2

我想从数据库中提取一个文本字段,并将其插入到其他数据库中。因此,在提取时,我在选择测试时使用了替换(message_text,‘\’,‘“)。我给了我一个错误。我从select语句中更改了这个错误,并在初始化全局变量时进行了修改。

不过,在insert语句中仍有一个错误

代码语言:javascript
复制
insert into lcs_al_user_likes(user_id,liked_user_id,post_content,loop_id) values('${etl.globals['posted_by']}','${etl.globals['liked_user_id']}','${etl.gl‌​obals['message_text']}',?batchLoopCounter); 

* SQL语法检查与MySQL服务器版本对应的手册中出现错误,以便在第1行使用接近“message_text]}”的正确语法。

我认为它没有得到全局变量。我说这是因为当我用日志打印它的值时,它只是给了我

${etl.globals'message_text'}

作为输出。所以请帮帮我。

代码语言:javascript
复制
<query connection-id="lcsDBConnection"> 
     SELECT forum_topic_post_id AS forum_topic_post_id, posted_by AS posted_by,message_text as message_text FROM lcs_tbl_forum_topic_post WHERE like_count>0 LIMIT ?batchSize OFFSET ?queryCounter ; 
     <script connection-id="jexl"> 
         etl.globals['forum_topic_post_id'] = forum_topic_post_id; 
         etl.globals['posted_by'] = posted_by; 
         etl.globals['message_text'] = message_text.replace('\'', '"'); 
     </script> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-12 16:08:21

看起来问题就在INSERT语句中,您应该使用准备好的语句参数转义:

代码语言:javascript
复制
INSERT INTO lcs_al_user_likes(user_id,liked_user_id,post_content,loop_id) values(?{etl.globals['posted_by']},?{etl.globals['liked_user_id']},?{etl.gl‌​obals['message_text']},?batchLoopCounter); 

顺便说一句,您原来的问题是引号破坏了insert语句,所以在本例中,您不需要使用替换(.)语法。完全起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13346521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档