Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 在DB2中从数组创建表_Sql_Arrays_Stored Procedures_For Loop_Db2 - Fatal编程技术网

Sql 在DB2中从数组创建表

Sql 在DB2中从数组创建表,sql,arrays,stored-procedures,for-loop,db2,Sql,Arrays,Stored Procedures,For Loop,Db2,我需要运行一个脚本,从select语句中获取的数字数组创建表 这里是我到目前为止得到的结果,但是由于某种原因它不起作用,并且普通的PL SQL在DB2V9.7中不起作用 CREATE OR REPLACE PROCEDURE proc1() IS BEGIN CREATE TABLE TEMP_YEAR ( YEAR_COLUMN integer ); INSERT INTO temp_year ( year_column ) (

我需要运行一个脚本,从select语句中获取的数字数组创建表

这里是我到目前为止得到的结果,但是由于某种原因它不起作用,并且普通的PL SQL在DB2V9.7中不起作用

CREATE OR REPLACE PROCEDURE proc1()
IS
BEGIN 


CREATE TABLE TEMP_YEAR 
   (    YEAR_COLUMN integer
   );


 INSERT INTO temp_year
      ( year_column )
      ( 
        select extract(year from datum) from datetest
      );

     FOR vl AS
    c1 cursor for
        SELECT  year_column FROM temp_year
         DO

         EXEC SQL execute immediate  'create table YEAR_' || year_column 
             || ' (year integer, name varchar2(50));
     END FOR;

drop table temp_year;
   END;
/

我第一次尝试它时没有经过这个过程,但是也没有用。…

如果你真的想使用数组,你可以使用关联数组。这将便于编写所需的流程

有关更多信息,请参阅这篇优秀的文章:


第二行可能应该说“as”,而不是“is”。而且,“不工作”这个词太模糊了。您是否收到错误或不期望的结果?我收到多个错误。第一个是:(从德语翻译过来)sqlcode:-104 sqlstate:42601 CREATE TABLE TEMP_YEAR(YEAR_COLUMN integer)DB21034E sql语句无效。“过程过程1()AS”上的SQL0104N跟随未检查的标记“BEGIN”。可能的标记为:“:”。行号=3。SQLSTATE=42601此错误在BEGIN中。从一个更简单的存储过程开始,手动分配变量中的年份值。我不需要使用数组。。。我们的目标是能够创建名为year\的表(这里是变量值),并从select语句的变量中获取值。我只能考虑借助数组来实现这一点。在这种情况下,改变你的问题,或者创建一个新的问题,解释你想要什么,以及你到目前为止做了什么。因为您当前的代码令人困惑。