Microsoft Project 98 saves a network of defined activities, called a project, in an MPP file. You can save the whole project into an Oracle database and all 38 tables supporting the project definition will be created. Task_Dependencies is the table that represents all possible activity dependencies. The following procedure is a recursive one to actualy draw all possible paths from the starting activity to the finish. Execute this SP with sp_dfs_path_alg (n,'',:s) where n is the starting activity code and s is the returned status. Here is the code:
Create or replace procedure sp_dfs_path_alg (nRoot IN number , cMaslul IN varchar2 , nStatus IN OUT NUMBER) as nPathExist int; cursor c_Maslul is SELECT SuccessorTaskUniqueId FROM "Task_Dependencies" where PredecessorTaskUniqueId = nRoot; cMaslulSon varchar2(2000); begin nStatus := 0; cMaslulSon := trim(cMaslul) || '->' || trim(to_char(nRoot)) ; select count(*) into nPathExist from "Task_Dependencies" where PredecessorTaskUniqueId = nRoot; IF nPathExist = 0 then DBMS_OUTPUT.put_line (cMaslulSon) ; ELSE FOR cm in c_Maslul LOOP sp_dfs_path_alg (cm.SuccessorTaskUniqueId,cMaslulSon,nStatus); END LOOP; END IF; EXCEPTION when Others then nStatus := SQLCODE; end sp_dfs_path_alg;
Narendra P. writes: Can you please tell how these 38 tables will be created?
For More Information
- What do you think about this tip? E-mail the editor at email@example.com with your feedback.
- The Best Oracle Web Links: tips, tutorials, scripts, and more.
- Have an Oracle tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize--submit your tip today!
- Ask your technical Oracle questions--or help out your peers by answering them--in our live discussion forums.
- Check out our Ask the Experts feature: Our SQL, database design, Oracle, SQL Server, DB2, metadata, and data warehousing gurus are waiting to answer your toughest questions.
This was first published in July 2002