הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל?

More
16 years 5 months ago #4236 by GeriReshef
באחד ה-Sessions מוגדרת ב-Pre SQL פקודה למחיקת אינדקס: Drop Index MySchema.MyIndex.
הבעייה עם פקודה כזו היא שאם מסיבה כלשהי האינדקס כבר נמחק קודם - הפעולה נכשלת והריצה כולה נופלת.
ה-DBA כתב פרוצדורה באוראקל שמקבלת שם של אינדקס כפרמטר, מוחקת אותו, ואם הוא לא קיים- יש שיגרת שגיאה שמונעת ממנה ליפול.
*לא הצלחתי להפעיל את הפרוצדורה מה-Pre SQL והאינפורמטיקה "מוכנה" להפעיל משם רק פקודות בסיסיות של אוראקל ולא פרוצדורות משתמשים (לא מדובר בבעיית הרשאה!).
האם יש דרך כן להפעיל את זה או לחילופין לפתור את הבעייה בדרך אחרת?
אפשר כמובן לבנות מפה שמפעילה פרוצדורה שמופיעה בה כטרנספורמציה, אבל זה מסורבל מדי לטעמי; ואשמח לשמוע על הצעות חלופיות.
תודה!


* ניסינו להפעיל את הפרוצדורה כמו שהיא (כולל שם הסכימה כנדרש),
  ניסינו עם Exec או Execute לפניה,
  עם Begin לפני ו-End אחרי,
  וכו'..

Please התחברות to join the conversation.

More
16 years 5 months ago #4244 by Or Pelach
תנסה להפעיל אותה כמו שמפעילים דרך SQL Plus.

Please התחברות to join the conversation.

More
16 years 1 month ago #4705 by אלון
זה בטח כבר לא רלוונטי.....

אבל אפשר להשתמש ב call

call proc_name(p1,p2);

Please התחברות to join the conversation.

More
16 years 1 month ago #4711 by GeriReshef

Please התחברות to join the conversation.

More
16 years 1 month ago #4755 by Or Pelach
הי,
להלן דוגמה איך להפעיל פרוצדורה ב- Pre- or Post-Session Stored Procedure
עם פרמטר:
my_stored_procedure("$$my_mapping_variable")

Please התחברות to join the conversation.

More
16 years 2 weeks ago #4886 by yuval_raz
??? האם בכלל כדאי להפעיל פרוצדורות מ Pre SQL?

לדעתי לא כדאי להפעיל פרוצדורות מ Pre SQL, גם הפעלה של שאילתות או בניה של אובייקטים לא כדאית (שוב, לדעתי).

יש שני בעיות שאני רואה בהרצת פרוצדורות ב PRE:
1. בד"כ פרוצדורות שרצות לפני מכינות נתוני, במקרה של נפילה של הSESSION אחרי הריצה צריך להכנס לבטל את ריצת הפרוצדורה ולהריץ שוב - משמע התערבות ידנית.
2. קשה לעקוב אחרי ריצות של פרוצדורות ב PRESQL.

הפתרון שאנחנו מיישמים אצלנו הוא הרצה של הפרוצדורה בתוך מפה יעודית והוספה של משתנה יוצא שיחזיר את ערך השגיאה לטבלת מעקב.

דעתכם?

Please התחברות to join the conversation.

More
16 years 1 week ago #4914 by אלון
אני מסכים איתך בגדול. צריך לעבוד עם הכלי , לזה הוא נועד.
אנחנו בעיקר מריצים סטטיסטיקות על טבלאות לאחר טעינה עם פרוצדורה ב- POST.

Please התחברות to join the conversation.

More
16 years 1 week ago #4915 by GeriReshef
באחד ה-Sessions הייתה פקודת ביטול לאינדקס לפני הריצה,
ופקודת יצירה מחדש אחריו (משיקולי יעילות בביצוע Insert).

כשהייתה נפילה והיינו צריכים להריץ שוב את המפה - היא נפלה מכיוון שהאינדקס כבר בוטל בפעם הקודמת ולא ניתן לבטלו שוב..

כתבנו פרוצדורה באוראקל שמבטלת אינדקסים עם שגרת שגיאה שמונעת נפילה ורצינו להריץ אותה..

Please התחברות to join the conversation.

More
14 years 11 months ago #6432 by eliazu
אצלנו בנינו 2 פרוצדורות אורקל. אחת עושה disable לכל האינדקסים של הטבלה. השניה עושה rebuild. הפרוצדורות מקבלות:
1. שם סכמה שבה הטבלה
2. שם טבלה באורקל

עבור כל TARGET במפה, הגדרתי ב pre sql את הפרוצדורה שמורידה את האינדקסים. ב post sql את הפרוצדורה שמחזירה אותם.
בנוסף הפרוצדורות שומרות בטבלה בצד את הפעולה שהם ביצעו בהצלחה עם תאריך.

מה שטוב ברעיון הזה הוא שאינקסים לא נמחקים. המשמעות היא שלא צריך לנהל את השמות שלהם. מהניסיון שלי זה היה תמיד סיבוך להשתמש בסקריפטים משונים. מתוך הבעיה נוצר הפיתרון הגנרי הנ"ל.

Please התחברות to join the conversation.

More
14 years 9 months ago #6592 by ycohen14

Please התחברות to join the conversation.

Moderators: Laromme Barr
Time to create page: 0.260 seconds