Oracle Stored Sources

რამდენიმე ხნის წინ დამჭირდა ორაკლიდან პროცედურის სოურსის ამოღება. როგორც ვიცით არსებული ობიექტების ჩამონათვალი და შესაბამისი მნიშვნელობები შეგვიძლია ამოვიღოთ სქლ-ით
[cc lang=”sql”]select * from user_objects[/cc]
და შესაბამისად ამ არსებულ მომხმარებელში ცხრილების მნიშვნელობების ამოღება  –
[cc lang=”sql”]select * from user_tables[/cc]
მაგრამ ჯერი მინდა სხვა ობიექტებზე, კერძოდ ფუნქციები, პროცედურები, პაკეჯები, ტრიგერები და ა.შ.
მიქექ-მოქექვის მერე აღმოვაჩინე მისი ადგილმდებარეობა ბაზაში. კერძოდ მათი სოურსის ამოღება შეგვიძლია SYS იუზერში განთავსებული all_source View-დან.
[cc lang=”sql”]SELECT * FROM SYS.all_source where owner='[თქვენი მომხმარებელი]'[/cc]
ცხრილების ჩამონათვალიდან განსხვავებით აქ ერთი სპეციფიკა გხვდება, ანუ კერძოდ რომელიმე ერთი პროცედურის თუ ტრიგერის სოურსი წერია არა ერთ დიდ ტექტურ ველში, არამედ იგი დაყოფილია ხაზებად და შესაბამისად იმდენ ჩანაწერად არის პროცედურა გადმოცემული რამდენი ხაზი გვაქვს ჩვენს პროცედურაში (მათ შორის ცარილი ხაზიც (space) ).
ჯამში კონკრეტული ობიექტის სოურსის ამოსაღებად ვიღებთ შემდეგ სქლ-ს
[cc lang=”sql”]SELECT text FROM SYS.all_source WHERE owner='[თქვენი მომხმარებელი]’ AND NAME = ‘[ობიექტის სახელი]’ AND TYPE = ‘[ობიექტის ტიპი]’ ORDER BY line[/cc]

და თუკი ეს ყველაფერი მიმდინარე User-ისთვის გვინდა მაშინ შეგვიძლია უფრო მოკლედ
[cc lang=”sql”]SELECT text FROM user_source WHERE NAME = ‘[ობიექტის სახელი]’ AND TYPE = ‘[ობიექტის ტიპი]’ ORDER BY line[/cc]

3 comments on “Oracle Stored Sources

  1. “თქვენი კომენტარი ელოდენა მოდერირებას.”
    ელოდენა თუ ელოდება? 😀 ეს შესასწორებელია

Leave a Reply

Your email address will not be published. Required fields are marked *