Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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 通过存储过程(Informix)插入行_Sql_Stored Procedures_Informix - Fatal编程技术网

Sql 通过存储过程(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

是否可以创建一个存储过程,用过程参数中的值将一行插入表中?我正在使用Informix-(

显示如何创建过程和执行

您对问题的评论给出的示例有效:

[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块。检查编辑答案。