Sql 通过存储过程(Informix)插入行
是否可以创建一个存储过程,用过程参数中的值将一行插入表中?我正在使用Informix-(显示如何创建过程和执行 您对问题的评论给出的示例有效:Sql 通过存储过程(Informix)插入行,sql,stored-procedures,informix,Sql,Stored Procedures,Informix,是否可以创建一个存储过程,用过程参数中的值将一行插入表中?我正在使用Informix-(显示如何创建过程和执行 您对问题的评论给出的示例有效: [infx1210@tardis ~]$ dbaccess pavle - Database selected. > CREATE TABLE tab1( > col1 VARCHAR(8), > col2 INTEGER, > col3 INTEGER > ); Table cre
[infx1210@tardis ~]$ dbaccess pavle -
Database selected.
> CREATE TABLE tab1(
> col1 VARCHAR(8),
> col2 INTEGER,
> col3 INTEGER
> );
Table created.
> CREATE PROCEDURE sp1 (a VARCHAR(8), b INTEGER, c INTEGER)
> INSERT INTO tab1 (col1,col2,col3) VALUES (a,b,c);
> END PROCEDURE;
Routine created.
> EXECUTE PROCEDURE sp1 ('test sp1',1,2);
Routine executed.
> SELECT * FROM tab1;
col1 col2 col3
test sp1 1 2
1 row(s) retrieved.
>
Database closed.
[infx1210@tardis ~]$
在SQuirreL上,您必须临时将语句分隔符更改为其他内容
转到文件菜单并选择新建会话属性,转到SQL选项卡并更改语句分隔符,例如\
再次连接并尝试:
CREATE PROCEDURE sp1 (a VARCHAR(8), b INTEGER, c INTEGER)
INSERT INTO tab1 (col1,col2,col3) VALUES (a,b,c);
END PROCEDURE\
这应该是可能的。你试过什么?嗨@Gordon,我试过这样的方法:
创建过程proc(a VARCHAR(8),b INTEGER,c INTEGER)插入表名(col1,col2,col3)值(a,b,c);END PROCEDURE
,但我得到一个语法错误。您使用什么客户端访问数据库?如果您使用的是isql
,则在尝试创建存储过程时会出现该错误。我使用的是SQuirreL SQL客户端版本3.7.1。数据库产品版本是11.50.FC2。@pavle crnković这与的使用有关;
insi取消SPL块。检查编辑答案。