{"id":5268,"date":"2015-12-17T10:32:46","date_gmt":"2015-12-17T15:32:46","guid":{"rendered":"http:\/\/appcrawler.com\/wordpress\/?p=5268"},"modified":"2015-12-17T10:32:46","modified_gmt":"2015-12-17T15:32:46","slug":"command-line-script-to-print-referential-integrity-constraints","status":"publish","type":"post","link":"http:\/\/appcrawler.com\/wordpress\/2015\/12\/17\/command-line-script-to-print-referential-integrity-constraints\/","title":{"rendered":"Command line script to print referential integrity constraints"},"content":{"rendered":"<p>Nothing fancy today, just a quickie as indicated in the subject line of the post&#8230;<\/p>\n<pre>\r\nset serverout on format wrapped\r\n\r\ndeclare\r\n  l_level number := 0;\r\n  --get only tables with no parent tables\r\n  cursor main is\r\n    select distinct table_name,constraint_name\r\n      from user_constraints\r\n      where table_name not in (select table_name\r\n                                 from user_constraints\r\n                                 where r_constraint_name is not null)\r\n        and constraint_type = 'P';\r\n  procedure get_constraints (i_level in out number, p_pk in varchar2, p_table in varchar2) is\r\n    l_level number := 0;\r\n  begin\r\n    l_level := i_level;\r\n    for c_rec in (select constraint_name, table_name\r\n                    from user_constraints\r\n                    where table_name in (select table_name\r\n                                           from user_constraints\r\n                                           where r_constraint_name = p_pk\r\n                                             and table_name <> p_table)\r\n                      and constraint_type = 'P') loop\r\n      i_level := l_level;\r\n      dbms_output.put_line(rpad(' ',to_char(i_level),' ')||' '||p_table||' '||c_rec.table_name);\r\n      i_level := i_level + 2;\r\n      get_constraints(i_level, c_rec.constraint_name, c_rec.table_name);\r\n    end loop;\r\n  end;\r\nbegin\r\n  for c_rec in main loop\r\n    get_constraints(l_level,c_rec.constraint_name, c_rec.table_name);\r\n    l_level := 0;\r\n  end loop;\r\nend;\r\n\/\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nothing fancy today, just a quickie as indicated in the subject line of the post&#8230; set serverout on format wrapped declare l_level number := 0; &#8211;get only tables with no parent tables cursor main is select distinct table_name,constraint_name from user_constraints&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/appcrawler.com\/wordpress\/2015\/12\/17\/command-line-script-to-print-referential-integrity-constraints\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[19,22],"tags":[],"_links":{"self":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/5268"}],"collection":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/comments?post=5268"}],"version-history":[{"count":2,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/5268\/revisions"}],"predecessor-version":[{"id":5270,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/5268\/revisions\/5270"}],"wp:attachment":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/media?parent=5268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/categories?post=5268"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/tags?post=5268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}