|
_IV_FOREIGN_KEYS | Systémové dotazy | _IV_LOCKS |
Systémový dotaz _iv_procedure_parameters vrací seznam parametrů procedur uložených na serveru. Dovoluje zjistit jména, typy a způsoby předávání parametrů.
Pro každý parametr je v odpovědi na dotaz jeden záznam. Pro funkce je v odpovědi navíc záznam odpovídající návratové hodnotě.
Popis sloupců
Jméno sloupce | Typ | Obsah |
Schema_name | CHAR(31) | Jméno schématu (aplikace), do něhož procedura patří |
Procedure_name | CHAR(31) | Jméno procedury |
Parameter_name | CHAR(31) | Jméno parametru (prázdné pro návratovou hodnotu funkce) |
Ordinal_position | INT | Pořadové číslo parametru od 1, 0 pro návratovou hodnotu |
Data_type | INT | Typ parametru nebo návratové hodnoty |
Length | INT | Délka (pouze pro typy s údajem o délce) |
Precision | INT | Počet desetinných míst (pouze pro přesné číselné typy) |
Direction | INT | Způsob předávání parametru: 1 = IN, 2 = OUT, 3 = INOUT, 0 = návratová hodnota |
Specif | INT | Specifický parametr typu (např. způsob třídění řetězce) |
Příklad
SELECT * FROM _iv_procedure_parameters WHERE schema_name=´APL1´ AND procedure_name=´PROC´
Dotaz vrátí popis parametrů procedury PROC ze schématu APL1.
Složitější příklad
SELECT Procs.PROC_NAME,COALESCE(SPP.PROC_TYPE,'procedura') AS PROC_TYPE, COALESCE(SPP.IN_PARAMS,0) AS `#IN_PARAMS`, COALESCE(SPP.OUT_PARAMS,0) AS `#OUT_PARAMS`, COALESCE(SPP.INOUT_PARAMS,0) AS `#INOUT_PARAMS` FROM (SELECT A.obj_name AS PROC_NAME FROM Objtab A, Objtab B WHERE A.apl_uuid=B.apl_uuid AND B.obj_name=CURRENT_APPLICATION AND B.category=Chr(CATEG_APPL) AND A.category=Chr(CATEG_PROC) ) AS Procs LEFT OUTER JOIN (SELECT PROCEDURE_NAME, CASE WHEN MIN(direction)=0 THEN 'funkce' ELSE 'procedura' END AS PROC_TYPE, SUM(CASE direction WHEN 1 THEN 1 ELSE 0 END) AS IN_PARAMS, SUM(CASE direction WHEN 2 THEN 1 ELSE 0 END) AS OUT_PARAMS, SUM(CASE direction WHEN 3 THEN 1 ELSE 0 END) AS INOUT_PARAMS FROM _iv_procedure_parameters WHERE schema_name=CURRENT_APPLICATION GROUP BY PROCEDURE_NAME ) AS SPP ON(Procs.PROC_NAME=SPP.procedure_name) GROUP BY PROC_NAME
Dotaz vrátí seznam rutin v aktuální aplikaci, u každé rutiny typ (procedura x funkce) a počty parametrů podle jejich typů (IN, OUT a INOUT). Protože systémový dotaz _iv_procedure_parameters obsahuje jen rutiny s parametry, musí se seznam rutin vybrat z tabulky objektů.
_IV_FOREIGN_KEYS | Systémové dotazy | _IV_LOCKS |