Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ibm db2:在匿名块中将字符串插入数据库_Sql_Plsql_Db2 - Fatal编程技术网

Sql ibm db2:在匿名块中将字符串插入数据库

Sql ibm db2:在匿名块中将字符串插入数据库,sql,plsql,db2,Sql,Plsql,Db2,我试图将字符串数据从匿名PL/SQL块插入db2表中 什么有效 SET SQLCOMPAT PLSQL; BEGIN ... SET ID_CITY = 0; SET city = chr(39) || 'Berlin' || chr(39); SET country_id = 83; SET REVNAME = chr(39) || 'create-script' || chr(39); SET REVCREATOR = chr(39) || 'create-script' || chr(3

我试图将字符串数据从匿名PL/SQL块插入db2表中

什么有效

SET SQLCOMPAT PLSQL;

BEGIN
...
SET ID_CITY = 0; SET city = chr(39) || 'Berlin' || chr(39); SET country_id = 83; SET REVNAME = chr(39) || 'create-script' || chr(39); SET REVCREATOR = chr(39) || 'create-script' || chr(39);
SET statement = 'INSERT INTO fk_city (ID_CITY, city, country_id, is_europe, REVNAME, REVDATE, REVFIRST, last_visit, REVCREATOR ) VALUES ( ' || ID_CITY || ', ' || city ||', ' || country_id || ', true, ' || REVNAME || ', CURRENT DATE, CURRENT DATE, CURRENT DATE, ' || REVCREATOR || ' )';
EXECUTE IMMEDIATE statement;
...
END
我的问题是:是否有其他方法可以使用oneliner插入表中?例如:

EXECUTE IMMEDIATE "INSERT INTO fk_city (ID_CITY, city, country_id, is_europe, REVNAME, REVDATE, REVFIRST, last_visit, REVCREATOR ) VALUES ( 0, 'Berlin', 83, true, 'create-script', CURRENT DATE, CURRENT DATE, CURRENT DATE, 'create-script' )";

上面的语句抛出了一个错误SQL0107N name太长,这似乎与我在第二条语句中使用的字符串分隔符有关,该分隔符在开始和结束时使用execute immediate replace双引号,在语句替换中使用双引号

EXECUTE IMMEDIATE 'INSERT INTO fk_city (ID_CITY, city, country_id, is_europe, REVNAME, REVDATE, REVFIRST, last_visit, REVCREATOR ) VALUES ( 0, ''Berlin'', 83, ''true'', ''create-script'', CURRENT DATE, CURRENT DATE, CURRENT DATE, ''create-script'' )';

我不确定您在当前日期中的意思,也许它应该是一些日期时间函数,如sysdate。

为什么要使用动态语句?为什么不使用绑定变量?代码是PHP脚本的一部分,它会针对数据库触发语句。绑定变量如何解决我的问题?当前日期是SQL语句开始的时间点的特殊寄存器。谢谢你的帮助!