【发布时间】:2014-02-05 12:39:30
【问题描述】:
我需要运行一个脚本,该脚本根据我从 select 语句中获得的一组数字创建表格。
这是我目前得到的,但是由于某种原因它无法正常工作,并且正常的 PL SQL 在 DB2 v9.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 语句无效。 “ROCEDURE PROC1() AS”上的 SQL0104N 跟在意外的标记“BEGIN”之后。可能的标记是:“:”。第 3 行。 SQLSTATE=42601
-
此错误出现在 BEGIN 中。从一个更简单的存储过程开始,手动分配变量中的年份值。
标签: sql arrays stored-procedures for-loop db2