Fórum pesquisa com resultado estranho #55461
10/03/2006
0
Caros amigos, estou desenvolvendo um procedimento para pesquisar em uma tabela do banco o mesmo dado em quatro colunas sendo que este dados somente vai existir um uma delas escrevi o procedimento abaixo, mas não funcionou, retorna varias linhas sendo que na tabela so existe 1 linha
CREATE PROCEDURE EXISTENCIA_PRODUTOS (
I_PESQUISA VARCHAR(30),
I_EMPRESA INTEGER)
returns (
R_CODIGO INTEGER,
r_esn varchar(15),
r_iccid varchar(20),
r_ctn varchar(18),
r_modelo varchar(13),
R_MOD_DESCRICAO VARCHAR(30),
R_SOMA_EST CHAR(1),
R_GRUPO INTEGER)
AS
begin
FOR
select
pro_codigo,
PRO_ESN_IMEI,
PRO_ICCID,
PRO_CTN,
PRO_COD_MODELO,
MOD_DESCRICAO,
MOD_SOMA_ESTOQUE,
MOD_GRUPO
FROM
PRODUTO,
MODELO
WHERE
PRO_EMP_ATIVA = :i_empresa AND
PRO_COD_MODELO = MOD_CODIGO and
PRO_ICCID = :i_pesquisa or
PRO_ESN_IMEI = :i_pesquisa or
PRO_CTN = :i_pesquisa or
PRO_COD_MODELO = :i_pesquisa
INTO
:r_codigo,
:r_esn,
:r_iccid,
:r_ctn,
:r_modelo,
:R_MOD_DESCRICAO,
:R_SOMA_EST,
:R_GRUPO
DO
SUSPEND;
end
CREATE PROCEDURE EXISTENCIA_PRODUTOS (
I_PESQUISA VARCHAR(30),
I_EMPRESA INTEGER)
returns (
R_CODIGO INTEGER,
r_esn varchar(15),
r_iccid varchar(20),
r_ctn varchar(18),
r_modelo varchar(13),
R_MOD_DESCRICAO VARCHAR(30),
R_SOMA_EST CHAR(1),
R_GRUPO INTEGER)
AS
begin
FOR
select
pro_codigo,
PRO_ESN_IMEI,
PRO_ICCID,
PRO_CTN,
PRO_COD_MODELO,
MOD_DESCRICAO,
MOD_SOMA_ESTOQUE,
MOD_GRUPO
FROM
PRODUTO,
MODELO
WHERE
PRO_EMP_ATIVA = :i_empresa AND
PRO_COD_MODELO = MOD_CODIGO and
PRO_ICCID = :i_pesquisa or
PRO_ESN_IMEI = :i_pesquisa or
PRO_CTN = :i_pesquisa or
PRO_COD_MODELO = :i_pesquisa
INTO
:r_codigo,
:r_esn,
:r_iccid,
:r_ctn,
:r_modelo,
:R_MOD_DESCRICAO,
:R_SOMA_EST,
:R_GRUPO
DO
SUSPEND;
end
Uiliangurjon
Curtir tópico
+ 0
Responder
Posts
11/03/2006
Uiliangurjon
Caros amigos so faltava um parenteses !!!!!!!!!!!
CREATE PROCEDURE EXISTENCIA_PRODUTOS (
I_PESQUISA VARCHAR(30),
I_EMPRESA INTEGER)
RETURNS (
R_CODIGO INTEGER,
R_ESN VARCHAR(15),
R_ICCID VARCHAR(20),
R_CTN VARCHAR(18),
R_MODELO VARCHAR(13),
R_MOD_DESCRICAO VARCHAR(30),
R_SOMA_EST CHAR(1),
R_GRUPO INTEGER)
AS
begin
FOR
select
pro_codigo,
PRO_ESN_IMEI,
PRO_ICCID,
PRO_CTN,
PRO_COD_MODELO,
MOD_DESCRICAO,
MOD_SOMA_ESTOQUE,
MOD_GRUPO
FROM
PRODUTO,
MODELO
WHERE
PRO_EMP_ATIVA = :i_empresa AND
PRO_COD_MODELO = MOD_CODIGO and
(PRO_ICCID = :i_pesquisa or
PRO_ESN_IMEI = :i_pesquisa or
PRO_CTN = :i_pesquisa or
PRO_COD_MODELO = :i_pesquisa)
INTO
:r_codigo,
:r_esn,
:r_iccid,
:r_ctn,
:r_modelo,
:R_MOD_DESCRICAO,
:R_SOMA_EST,
:R_GRUPO
DO
SUSPEND;
end
CREATE PROCEDURE EXISTENCIA_PRODUTOS (
I_PESQUISA VARCHAR(30),
I_EMPRESA INTEGER)
RETURNS (
R_CODIGO INTEGER,
R_ESN VARCHAR(15),
R_ICCID VARCHAR(20),
R_CTN VARCHAR(18),
R_MODELO VARCHAR(13),
R_MOD_DESCRICAO VARCHAR(30),
R_SOMA_EST CHAR(1),
R_GRUPO INTEGER)
AS
begin
FOR
select
pro_codigo,
PRO_ESN_IMEI,
PRO_ICCID,
PRO_CTN,
PRO_COD_MODELO,
MOD_DESCRICAO,
MOD_SOMA_ESTOQUE,
MOD_GRUPO
FROM
PRODUTO,
MODELO
WHERE
PRO_EMP_ATIVA = :i_empresa AND
PRO_COD_MODELO = MOD_CODIGO and
(PRO_ICCID = :i_pesquisa or
PRO_ESN_IMEI = :i_pesquisa or
PRO_CTN = :i_pesquisa or
PRO_COD_MODELO = :i_pesquisa)
INTO
:r_codigo,
:r_esn,
:r_iccid,
:r_ctn,
:r_modelo,
:R_MOD_DESCRICAO,
:R_SOMA_EST,
:R_GRUPO
DO
SUSPEND;
end
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)