我正在玩db2存储过程,并且我正在努力解读以下概念。 当我创建下面db2存储过程创建行为
create or replace procedure test()
begin
insert into mytable(a) values ('a');
insert into mytable(a) values ('b');
insert into mytable(a) values ('c');
end
喜欢简单的存储过程,我可以看到,MYTABLE得到这个创建过程中填补。 我期待使用'call test()'插入我的数据,但我可以看到它不是我想象的。我在这里做错了什么,或者它的确如此工作?
为了避免这种古怪的行为,我发现我需要把一切都放在同一行,我有我的期望,即没有插入数据时,我调用任何“创建或替换程序”
create or replace procedure test() begin insert into mytable(a) values ('a'); insert into mytable(a) values ('b'); insert into mytable(a) values ('c'); end
你是在命令行上输入的吗?如果是这样,你需要转义新的行字符。最好还是把所有的定义放在一个文件中并处理完整的文件。 – 2013-04-11 03:15:28
@詹姆斯安德森:我已经这样做了。该代码位于名为test.sql的文件中,我使用以下命令'db2 -v -t -f test.sql -m -z xti.out'。ONce再次看起来像它读取时执行那些行。 – 2013-04-11 07:08:12
请在您的问题或标签中指出这是一个关于DB2 LUW的问题。此行为不适用于其他平台。 – WarrenT 2013-04-11 11:41:47