首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >informix存储过程错误,返回“发生语法错误。”

informix存储过程错误,返回“发生语法错误。”
EN

Stack Overflow用户
提问于 2019-05-22 23:18:44
回答 1查看 213关注 0票数 1

我已经编写了这个存储过程,并且一直收到以下错误:“发生了语法错误”。我要说的是,作为回报,我用**标记了它(这不在我使用的代码中),你能帮帮我吗?这让我发疯。我不需要这方面的帮助,但有人告诉我‘看起来你的帖子主要是代码;请添加更多细节。’为此,我输入了更多,这样我就可以发布这个问题,更多的嘘,这让我今天发疯了。

代码语言:javascript
复制
drop procedure CustomerSOPDetails(char(10));

create procedure CustomerSOPDetails(account char(10))

returning


char(10),
char(3),
char(3),
char(3),
char(40),
char(10),
char(30),
char(30),
char(30),
char(30),
char(30),
char(10),
char(30),
char(8),
char(10);


define account char(10);
define uzbusman1 char(3);
define uzsalrep1 char(3);
define uzsalcor1 char(3);
define name char(40);
define alphcode char(10);
define addr1 char(30);
define addr2 char(30);
define addr3 char(30);
define addr4 char(30);
define addr5 char(30);
define postcode char(10);
define telephone char(30);
define lastdate char(8);
define addtype char(10);



foreach
select
oecus.oecus_account,
oecus.oecus_uzbusman1,
oecus.oecus_uzsalrep1,
oecus.oecus_uzsalcor1,
ndmas.ndm_name,
ndmas.ndm_alphcode,
ndmas.ndm_addr1,
ndmas.ndm_addr2,
ndmas.ndm_addr3,
ndmas.ndm_addr4,
ndmas.ndm_addr5,
ndmas.ndm_postcode,
ndmas.ndm_telephone,
ndmas.ndm_lastdate,
ndmas.ndm_addtype

from oecus
inner join ndmas 
on oecus.oecus_account=ndmas.ndm_ndcode

where oecus_account = account


RETURN **
 account,
 uzbusman1,
 uzsalrep1,
 uzsalcor1,
 name,
 alphcode, 
 addr1,
 addr2,
 addr3,
 addr4,
 addr5,
 postcode, 
 postcode,
 lastdate,
 addtype
with resume;

end foreach

end procedure;
EN

回答 1

Stack Overflow用户

发布于 2019-05-22 23:52:19

尝试使用INTO子句:

代码语言:javascript
复制
--drop procedure CustomerSOPDetails(char(10));

create procedure CustomerSOPDetails(account char(10))

returning


char(10),
char(3),
char(3),
char(3),
char(40),
char(10),
char(30),
char(30),
char(30),
char(30),
char(30),
char(10),
char(30),
char(8),
char(10);


define uzbusman1 char(3);
define uzsalrep1 char(3);
define uzsalcor1 char(3);
define name char(40);
define alphcode char(10);
define addr1 char(30);
define addr2 char(30);
define addr3 char(30);
define addr4 char(30);
define addr5 char(30);
define postcode char(10);
define telephone char(30);
define lastdate char(8);
define addtype char(10);



foreach
    select
    oecus.oecus_account,
    oecus.oecus_uzbusman1,
    oecus.oecus_uzsalrep1,
    oecus.oecus_uzsalcor1,
    ndmas.ndm_name,
    ndmas.ndm_alphcode,
    ndmas.ndm_addr1,
    ndmas.ndm_addr2,
    ndmas.ndm_addr3,
    ndmas.ndm_addr4,
    ndmas.ndm_addr5,
    ndmas.ndm_postcode,
    ndmas.ndm_telephone,
    ndmas.ndm_lastdate,
    ndmas.ndm_addtype

    into 
     account,
     uzbusman1,
     uzsalrep1,
     uzsalcor1,
     name,
     alphcode, 
     addr1,
     addr2,
     addr3,
     addr4,
     addr5,
     postcode, 
     telephone,
     lastdate,
     addtype

    from oecus
    inner join ndmas 
    on oecus.oecus_account=ndmas.ndm_ndcode
    where oecus_account = account

    RETURN 
     account,
     uzbusman1,
     uzsalrep1,
     uzsalcor1,
     name,
     alphcode, 
     addr1,
     addr2,
     addr3,
     addr4,
     addr5,
     postcode, 
     telephone,
     lastdate,
     addtype
    with resume;

end foreach

end procedure;

下一次,试着减少SQL语句,这会让事情变得更容易看到;)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56260112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档