توضیحات بعد از اینکه cursor را تعریف کردیم قدم بعدی باز کردن آن است. دستور با دستور زیر میتوان یک cursor را باز کرد: 1 OPEN cursor_name; . مثال مثالی از استفاده از cursor: 1 OPEN c1;
توضیحات بعد از اینکه cursor را تعریف کردیم قدم بعدی باز کردن آن است. دستور با دستور زیر میتوان یک cursor را باز کرد: 1 OPEN cursor_name; . مثال مثالی از استفاده از cursor: 1 OPEN c1;
توضیحات قدم بعدی برای استفاده از cursor، fetch کردن آن است. دستور دستور برای Fetch کردن cursor: 1 FETCH cursor_name INTO variable_list; variable_list: لیست متغیرهایی که میخواهید مقادیر cursor را در آن ذخیره کنید. مثال مثالهایی از تعریف cursor با پارامتر و بدون پارامتر: 1234567 CURSOR c1IS SELECT course_number FROM courses_tbl WHERE course_name = name_in; FETCH c1 into cnumber;
توضیحات هنگام کار کردن با cursorها ممکن است لازم باشد که وضعیت آن تعیین شود. مثال در زیر مثالی از استفاده cursor attribute را مشاهد میکنیم: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 CREATE OR REPLACE […]
توضیحات این دستور این اجازه را میدهد تا رکوردی که cursor بر روی آن قرار داد lock شود و لزوما نباید تغییری داد بر روی این رکورد و این lock زمانی برطرف میشود که commit یا rollback اتفاق بیافتد. دستور دستور select for update: 1 2 3 4 CURSOR cursor_name IS select_statement FOR UPDATE [OF […]
توضیحات اگر بخواهیم رکوردی که با دستور select for update ، lock شده است را update یا delete کنیم باید از دستور where current of استفاده کنیم. دستور دستور where current of را اینگونه میتوان استفاده کرد: 123456 UPDATE table_name SET set_clause WHERE CURRENT OF cursor_name; DELETE FROM table_nameWHERE CURRENT OF cursor_name; مثال مثالهایی از استفاده where current […]
توضیحات ممکن است گاهی با کلید خارجی برخورد کنیم که غیر فعال است میتوان آن را با دستور Alter Table فعال کرد. دستور دستوری که کلید خارجی را فعال میکند: 1 2 ALTER TABLE table_name ENABLE CONSTRAINT constraint_name; همچنین میتوان با دستور زیر کلید خارجی را غیر فعال کرد: 1 2 ALTER TABLE table_name DISABLE […]
توضیحات کلید خارجی با cascade delete به این معناست که اگر رکوردی در جدول اصلی حذف شود در جدولی که به عنوان کلید خارجی به آن اشاره شده است نیز حذف میشود. دستور قابلیت cascade delete را میتوان با دستور create table یا Alter table فعال کرد: 1234567891011121314151617 CREATE TABLE table_name( column1 datatype null/not null, column2 datatype […]
توضیحات میتوان کلید خارجی که قبلا ساخته و فعال شده است را نیز پاک کرد. دستور قابلیت set null را میتوان با دستور create table یا Alter table فعال کرد: 1 2 ALTER TABLE table_name DROP CONSTRAINT constraint_name; . مثال مثالی از پاک کردن کلید خارجی: 1 2 ALTER TABLE products DROP CONSTRAINT fk_supplier;
توضیحات Named system exception خطایی است که توسط Pl/Sql نامگذاری شده است، و در پکیج استاندارد قرار دارند و نیازی نیست کاربر به آنها نامی اختصاص دهد. دستور در ادامه استفاده از Exceptionها را در یک تابع و پروسیجر مشاهده میکنیم: 123456789101112131415161718192021222324252627282930313233343536373839404142434445 CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN return_datatypeIS | AS [declaration_section] BEGIN executable_section EXCEPTION WHEN exception_name1 THEN [statements] WHEN […]
توضیحات گاهی نیاز است که برنامهنویس خود exception را تعریف کند که در پکیج استاندارد وجود ندارد. دستور در ادامه استفاده از name programmer-defined exception را در تابع و پروسیجر بررسی میکنیم: 1234567891011121314151617181920212223242526272829303132333435363738394041 CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ]IS [declaration_section] exception_name EXCEPTION; BEGIN executable_section RAISE exception_name; EXCEPTION WHEN exception_name THEN [statements] WHEN OTHERS THEN [statements] END [procedure_name];CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN […]