multiple rows in singleton select...
Oi, pessoal. Eu aqui de novo.Criei a SP abaixo. Quando pesquiso um valor que retorna poucos registros ela dá certo. Mas, quando pesquiso um valor com muitos registro ela dá o seguinte erro: "multiple rows in singleton select". "At procedure 'VERIFY_CALL' Line: 7, Col:5"
CREATE OR ALTER PROCEDURE VERIFY_CALL ( situ varchar(2))returns ( id_ integer, status_ varchar(2))asbegin select chamado.id, chamado.status from chamado where chamado.status = :situ into :id_, :status_;suspend;end
A tabela tem vários outros campos mas preciso do retorno somente desses dois.Alguém poderia me explicar porque ocorre esse erro?
CREATE OR ALTER PROCEDURE VERIFY_CALL ( situ varchar(2))returns ( id_ integer, status_ varchar(2))asbegin select chamado.id, chamado.status from chamado where chamado.status = :situ into :id_, :status_;suspend;end
A tabela tem vários outros campos mas preciso do retorno somente desses dois.Alguém poderia me explicar porque ocorre esse erro?
Daniel Mourao
Curtidas 0
Respostas
Wilson Junior
02/06/2010
De uma olhada neste link http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1129211309:192&page=ibp_sps_delphi
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Deivison Melo
02/06/2010
Caro Daniel,
Sua instrução select está retornando mais de um registro e a mesma, e você está tentando guardar essa informação em um uma variável...
Do jeito que sua procedure foi codifida está errada pois não está garantindo que o resultset retornará apenas um linha (registro), se retornasse apenas uma linha estaria correta. Para solução do seu problema você deverá estar usar um "cursor" (FOR...SELECT). Abração e espero ter ajudado!! Emanoel Deivison Recife - PE
Do jeito que sua procedure foi codifida está errada pois não está garantindo que o resultset retornará apenas um linha (registro), se retornasse apenas uma linha estaria correta. Para solução do seu problema você deverá estar usar um "cursor" (FOR...SELECT). Abração e espero ter ajudado!! Emanoel Deivison Recife - PE
GOSTEI 0
Daniel Mourao
02/06/2010
Era somente a questão do FOR...SELECT...DO!
Valeu mesmo pessoal!
Obrigado a todos.
Abraço.
Valeu mesmo pessoal!
Obrigado a todos.
Abraço.
GOSTEI 0