Oracle Stored Sources
რამდენიმე ხნის წინ დამჭირდა ორაკლიდან პროცედურის სოურსის ამოღება. როგორც ვიცით არსებული ობიექტების ჩამონათვალი და შესაბამისი მნიშვნელობები შეგვიძლია ამოვიღოთ სქლ-ით
1 | SELECT * FROM user_objects |
და შესაბამისად ამ არსებულ მომხმარებელში ცხრილების მნიშვნელობების ამოღება –
1 | SELECT * FROM user_tables |
მაგრამ ჯერი მინდა სხვა ობიექტებზე, კერძოდ ფუნქციები, პროცედურები, პაკეჯები, ტრიგერები და ა.შ.
მიქექ-მოქექვის მერე აღმოვაჩინე მისი ადგილმდებარეობა ბაზაში. კერძოდ მათი სოურსის ამოღება შეგვიძლია SYS იუზერში განთავსებული all_source View-დან.
1 | SELECT * FROM SYS.all_source WHERE owner='[თქვენი მომხმარებელი]' |
ცხრილების ჩამონათვალიდან განსხვავებით აქ ერთი სპეციფიკა გხვდება, ანუ კერძოდ რომელიმე ერთი პროცედურის თუ ტრიგერის სოურსი წერია არა ერთ დიდ ტექტურ ველში, არამედ იგი დაყოფილია ხაზებად და შესაბამისად იმდენ ჩანაწერად არის პროცედურა გადმოცემული რამდენი ხაზი გვაქვს ჩვენს პროცედურაში (მათ შორის ცარილი ხაზიც (space) ).
ჯამში კონკრეტული ობიექტის სოურსის ამოსაღებად ვიღებთ შემდეგ სქლ-ს
1 | SELECT text FROM SYS.all_source WHERE owner='[თქვენი მომხმარებელი]' AND NAME = '[ობიექტის სახელი]' AND TYPE = '[ობიექტის ტიპი]' ORDER BY line |
და თუკი ეს ყველაფერი მიმდინარე User-ისთვის გვინდა მაშინ შეგვიძლია უფრო მოკლედ
1 | SELECT text FROM user_source WHERE NAME = '[ობიექტის სახელი]' AND TYPE = '[ობიექტის ტიპი]' ORDER BY line |
October 14th, 2008 at 3:02 pm
კარგი საიტია.
October 14th, 2008 at 3:03 pm
“თქვენი კომენტარი ელოდენა მოდერირებას.”
ელოდენა თუ ელოდება? 😀 ეს შესასწორებელია
October 25th, 2008 at 3:08 pm
ამჯერად უკვე ელოდება 🙂