node-oracledb下遇到ORA-01704 string literal too long报错

2019年03月15日Web后端、数据库

公司内部的一个自用的小爬虫,由于爬取网站的数据主要是用js拼装生成的,而且js填充的规律并未找到,所以后面使用puppeteer处理。既然要处理,那么连数据库就是最基本的了,没想到的是,还要去连oracle。。

由于只做了简单的查询与插入,所以遇到的问题也就在这狭小的范围之内了。

一、问题

爬取完页面,需要将页面上的数据插入到数据库,由于页面内容比较多,并且利用execute拼接字符串做处理的,在执行的时候遇到了此报错。

尽管此处用的是clob类型,可以存下,但是sql语句的语法解析却有长度限制,所以提示过长了。

二、处理方法

由于字符过长,于是采用了存储过程,创建是由后端人员写的,执行的话不能参照后端的写法,后端java中使用了 call去调用存储过程,但是在node中使用并没有啥用。

于是便开始翻阅文档,话说是不是用上oracle,都不采用node对接呐,网上搜索问题也搜不到。

最后在文档上找到了如何调存储过程,看来,文档还是最有效的。