|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 8. Yordamsal dil (PSQL) > 8.2 Bildirimler |
<ad> <tip> [= <ifade> | DEFAULT <ifade>];
DECLARE [VARIABLE] <ad> <tip> [= <ifade>];
i, j, k integer; -- tek tipe birkaç ad
test UnitTest = UnitTest(); -- nesne örneği
CONST <ad> <tip> = <ifade>; -- ilk değer zorunlu
TYPE <ad> AS … END -- yerel tip
ENUM <ad> AS (a, b = 5, …)
EXCEPTION <ad> '<mesaj>' -- mesaj zorunlu
[AGGREGATE] FUNCTION … / PROCEDURE … -- yerel yordamYerel fonksiyon örneği:
execute block
as
test UnitTest = UnitTest();
function typeNameOf(i TypeInfo) returns string
as
begin
return i.GetTypeName();
end;
begin
…
end;Bildirimlerde PSQL'e özgü tipler kullanılabilir: STRING, CSTRING,
TABLE( … ), ARRAY[n] OF <tip>, ANY,
TYPE OF <nesne>.
Bir yerel değişken dizi olarak bildirilebilir. Uzunluk yazılırsa dizi sabit boyludur; yazılmazsa boş başlar ve ilk yazmada büyür:
<ad> ARRAY[<n>] OF <tip> --// n yuvayla kurulur, boyu değişmez
<ad> ARRAY OF <tip> --// uzunluk 0 başlar, yazdıkça büyürÖğe erişimi 1 tabanlıdır — dilin geri kalanıyla aynı. length
o anki uzunluğu verir, add büyüyebilir bir dizinin sonuna ekler ve eklediği öğenin
1 tabanlı sırasını döndürür:
execute block
as
a array of integer;
b array[3] of integer;
n integer;
begin
a[1] = 10; a[2] = 20; a[3] = 30; --// a.length artık 3
b[1] = 7; --// b.length her zaman 3
n = a.add(40); --// n = 4, a.length = 4, a[4] = 40
for n in 1 .. a.length do
Console.PrintF(c'{0}\n', a[n]);
endÖğe tipi denetlenir: bir ARRAY OF INTEGER'a dizge yazmak reddedilir. Bir yordamın
açık parametre listesi de dizidir (PARAMS <ad> ARRAY OF <tip>); onun boyu
çağrı anındaki argüman sayısıdır ve büyümez.
Sabit boylu bir dizide sınırın dışına yazmak ve add çağırmak
OUT_OF_RANGE verir; aynısı açık parametre dizisi için de geçerlidir. Dizin
0 her zaman geçersizdir (erişim 1 tabanlı). Bildirilen uzunluk ve büyüyebilen bir
dizinin dizini en çok 100 000'dir.