15. juli 2006 - 17:43Der er
4 kommentarer og 1 løsning
Stored procedure
Hvad er der galt ??? jeg kan ikke lave en select * from get_userfields('mytable')
SET TERM ^ ;
CREATE PROCEDURE GET_USERFIELDS ( TABLENAME VARCHAR(100)) RETURNS ( USERFIELD_ID INTEGER, FIELD_NAME VARCHAR(255), FIELD_LABEL VARCHAR(255)) AS begin select U.sys_userfield_id as USERFIELD_ID, U.userfield_name as FIELD_NAME, U.userfield_dspname as FIELD_LABEL from userfields_tables UT, userfields U where upper(UT.table_name) = Upper(:tablename) and UT.sys_table_id = U.table_id into :userfield_id, :field_name, :field_label; suspend; end^
Mød TrackMan og Veo på Computerworld Cloud & AI Festival og hør, hvordan tech ændrer måden, vi træner og udvikler talent – fra skolebold til The Masters.
ok, men hvordan skriver jeg min procedure om til at retunere flere rows, som hvis jeg lavede det som et alm. select :
select U.sys_userfield_id as USERFIELD_ID, U.userfield_name as FIELD_NAME, U.userfield_dspname as FIELD_LABEL from userfields_tables UT, userfields U where upper(UT.table_name) = Upper(:tablename) and UT.sys_table_id = U.table_id
Det er ikke testet men det vil ligne dette: SET TERM ^ ;
CREATE PROCEDURE GET_USERFIELDS ( TABLENAME VARCHAR(100)) RETURNS ( USERFIELD_ID INTEGER, FIELD_NAME VARCHAR(255), FIELD_LABEL VARCHAR(255)) AS begin for select U.sys_userfield_id as USERFIELD_ID, U.userfield_name as FIELD_NAME, U.userfield_dspname as FIELD_LABEL from userfields_tables UT, userfields U where upper(UT.table_name) = Upper(:tablename) and UT.sys_table_id = U.table_id into :userfield_id, :field_name, :field_label; do begin suspend; end end^
SET TERM ; ^
Jeg er desuden ikke sikker på at du kan give et tabelnavn med som parameter også benytte det i din select. Har du evt. mulighed for at poste din fejlbesked?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.