ברוך הבא, אורח
שם משתמש: סיסמא: זכור אותי

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

כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 11 years 11 months ago #4236

  • GeriReshef
  • GeriReshef's Avatar
  • Offline
  • Senior Boarder
  • הודעות: 58
  • קרמה: 0
באחד ה-Sessions מוגדרת ב-Pre SQL פקודה למחיקת אינדקס: Drop Index MySchema.MyIndex.
הבעייה עם פקודה כזו היא שאם מסיבה כלשהי האינדקס כבר נמחק קודם - הפעולה נכשלת והריצה כולה נופלת.
ה-DBA כתב פרוצדורה באוראקל שמקבלת שם של אינדקס כפרמטר, מוחקת אותו, ואם הוא לא קיים- יש שיגרת שגיאה שמונעת ממנה ליפול.
*לא הצלחתי להפעיל את הפרוצדורה מה-Pre SQL והאינפורמטיקה "מוכנה" להפעיל משם רק פקודות בסיסיות של אוראקל ולא פרוצדורות משתמשים (לא מדובר בבעיית הרשאה!).
האם יש דרך כן להפעיל את זה או לחילופין לפתור את הבעייה בדרך אחרת?
אפשר כמובן לבנות מפה שמפעילה פרוצדורה שמופיעה בה כטרנספורמציה, אבל זה מסורבל מדי לטעמי; ואשמח לשמוע על הצעות חלופיות.
תודה!


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

בעניין: כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 11 years 11 months ago #4244

  • Or Pelach
  • Or Pelach's Avatar
  • Offline
  • Moderator
  • הודעות: 134
  • קרמה: -1
תנסה להפעיל אותה כמו שמפעילים דרך SQL Plus.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

בעניין: כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 11 years 7 months ago #4705

  • אלון
  • אלון's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 7
  • קרמה: 0
זה בטח כבר לא רלוונטי.....

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

call proc_name(p1,p2);
הנהלת האתר ביטלה גישת כתיבה ציבורית.

בעניין: כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 11 years 7 months ago #4711

  • GeriReshef
  • GeriReshef's Avatar
  • Offline
  • Senior Boarder
  • הודעות: 58
  • קרמה: 0
כן רלוונטי: אנסה!
תודה..
הנהלת האתר ביטלה גישת כתיבה ציבורית.

בעניין: כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 11 years 7 months ago #4755

  • Or Pelach
  • Or Pelach's Avatar
  • Offline
  • Moderator
  • הודעות: 134
  • קרמה: -1
הי,
להלן דוגמה איך להפעיל פרוצדורה ב- Pre- or Post-Session Stored Procedure
עם פרמטר:
my_stored_procedure("$$my_mapping_variable")
הנהלת האתר ביטלה גישת כתיבה ציבורית.

בעניין: כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 11 years 6 months ago #4886

  • yuval_raz
  • yuval_raz's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 4
  • קרמה: 0
??? האם בכלל כדאי להפעיל פרוצדורות מ Pre SQL?

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

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

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

דעתכם?
הנהלת האתר ביטלה גישת כתיבה ציבורית.

בעניין: כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 11 years 6 months ago #4914

  • אלון
  • אלון's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 7
  • קרמה: 0
אני מסכים איתך בגדול. צריך לעבוד עם הכלי , לזה הוא נועד.
אנחנו בעיקר מריצים סטטיסטיקות על טבלאות לאחר טעינה עם פרוצדורה ב- POST.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

אצלנו הבעייה הייתה הפוכה 11 years 6 months ago #4915

  • GeriReshef
  • GeriReshef's Avatar
  • Offline
  • Senior Boarder
  • הודעות: 58
  • קרמה: 0
באחד ה-Sessions הייתה פקודת ביטול לאינדקס לפני הריצה,
ופקודת יצירה מחדש אחריו (משיקולי יעילות בביצוע Insert).

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

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

תגובה:כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 10 years 5 months ago #6432

  • eliazu
  • eliazu's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 12
  • קרמה: 0
אצלנו בנינו 2 פרוצדורות אורקל. אחת עושה disable לכל האינדקסים של הטבלה. השניה עושה rebuild. הפרוצדורות מקבלות:
1. שם סכמה שבה הטבלה
2. שם טבלה באורקל

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

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

תגובה: כיצד ניתן להפעיל ב-Pre SQL פרוצדורה של אוראקל? 10 years 3 months ago #6592

  • ycohen14
  • ycohen14's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 1
  • קרמה: 0
declare
begin
INIT() \;
end\;
הנהלת האתר ביטלה גישת כתיבה ציבורית.
מנהלים: Laromme Barr
זמן יצירת העמוד: 0.227 שניות

הדף שלנו בפייסבוק

מעניין? שתפו דף זה באמצעות הטלפון הנייד

מאמרים

מגמות של ביג דאטה בעולם הביטוח
CA Technologies
SSIS - Buffer Size Optimization
קטגוריה ראשית
בדיקות BI ו-DWH לעומת הבדיקות בתחומים אחרים
קטגוריה ראשית
איסוף דרישות לפרויקטי BI
קטגוריה ראשית
כח המידע במיקוד
קטגוריה ראשית
0

Microsoft

Oracle

IBM

Informatica

Sap

SAS

Qlikview

Cloudera

Machine Learning