{"id":522,"date":"2023-11-15T21:48:53","date_gmt":"2023-11-15T21:48:53","guid":{"rendered":"https:\/\/test.samplewebsitelink.com\/ordba\/?p=522"},"modified":"2023-11-15T21:48:55","modified_gmt":"2023-11-15T21:48:55","slug":"source-save","status":"publish","type":"post","link":"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/","title":{"rendered":"SOURCE SAVE"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ordba.net\/rdbmsimages\/a18.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">SOURCE SAVE<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Save the Source Code and Table and Index Structures using PL\/SQL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After having gone through some papers on this subject, the need for a robust system has to be developed plugging all the holes, is felt and the result is this.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The basic idea and the first paper that has been seen is that of TOM, the great.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I also have consulted him on some aspects of this small database I have in my mind and he gave valuable suggestions. I am proud to acknowledge them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schema Owners<br>(1) SOURCE_SAFE owns the tables that hold the data.<br>(2) SECUITY owns the stored procedures and triggers that generate and insert data into those tables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>create table source_code_versions (<br>username varchar2 (30),<br>os_user varchar2 (50),<br>terminal varchar2 (16),<br>version number,<br>date_of_change date,<br>line number,<br>name varchar2 (30),<br>owner varchar2 (30),<br>text varchar2 (4000),<br>type varchar2 (12))<br>tablespace users<br>pctfree 10<br>initrans 1<br>maxtrans 255<br>storage (<br>initial 65536<br>minextents 1<br>maxextents 2147483645<br>)<br>nocache;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">grant delete on source_code_versions to security;<br>grant insert on source_code_versions to security;<br>grant select on source_code_versions to security;<br>grant update on source_code_versions to security;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">create table all_views_code_versions (<br>username varchar2 (30) default user,<br>os_user varchar2 (30),<br>terminal varchar2 (16),<br>version number,<br>date_of_change date default sysdate,<br>owner varchar2 (30) not null,<br>view_name varchar2 (30) not null,<br>text_length number,<br>text varchar2 (4000))<br>tablespace users<br>pctfree 10<br>initrans 1<br>maxtrans 255<br>storage (<br>initial 65536<br>minextents 1<br>maxextents 2147483645<br>)<br>nocache;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">grant delete on all_views_code_versions to security;<br>grant insert on all_views_code_versions to security;<br>grant select on all_views_code_versions to security;<br>grant update on all_views_code_versions to security;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">create table all_tab_col_verions (<br>username varchar2 (30),<br>os_user varchar2 (30),<br>terminal varchar2 (16),<br>version number,<br>date_of_change date,<br>owner varchar2 (30),<br>table_name varchar2 (30),<br>column_name varchar2 (30),<br>data_type varchar2 (106),<br>data_length number,<br>data_precision number,<br>data_scale number,<br>nullable varchar2 (1),<br>column_id number,<br>tablespace_name varchar2 (32))<br>tablespace system<br>pctfree 10<br>pctused 40<br>initrans 1<br>maxtrans 255<br>storage (<br>initial 65536<br>minextents 1<br>maxextents 2147483645<br>freelists 1 freelist groups 1 )<br>nocache;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">grant delete on all_tab_col_verions to security;<br>grant insert on all_tab_col_verions to security;<br>grant select on all_tab_col_verions to security;<br>grant update on all_tab_col_verions to security<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">create table all_ind_col_vesrions (<br>username varchar2 (30) default user,<br>os_user varchar2 (30),<br>terminal varchar2 (16),<br>version number,<br>date_of_change date default sysdate,<br>index_owner varchar2 (30),<br>index_name varchar2 (30),<br>table_owner varchar2 (30),<br>table_name varchar2 (30),<br>column_name varchar2 (30),<br>column_position number,<br>tablespace_name varchar2 (32))<br>tablespace users<br>pctfree 10<br>initrans 1<br>maxtrans 255<br>storage (<br>initial 65536<br>minextents 1<br>maxextents 2147483645<br>)<br>nocache;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">grant delete on all_ind_col_vesrions to security;<br>grant insert on all_ind_col_vesrions to security;<br>grant select on all_ind_col_vesrions to security;<br>grant update on all_ind_col_vesrions to security;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CREATE OR REPLACE procedure SECURITY.sp_all_ind_col as<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">v_version number;<br>v_tablespace_name dba_segments.tablespace_name%type;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">begin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">select nvl(max(version),0)<br>into v_version<br>from source_safe.ALL_ind_col_vesrions<br>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">v_version:=v_version+1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>if ora_dict_obj_type = &#8216;INDEX&#8217; then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">select tablespace_name<br>into v_tablespace_name<br>from dba_segments<br>where segment_name=ora_dict_obj_name<br>and segment_type=&#8217;INDEX&#8217;<br>and owner=ora_dict_obj_owner;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">insert into source_safe.ALL_ind_col_vesrions<br>select USER,<br>a.OSUSER,<br>TERMINAL,<br>v_VERSION,<br>sysdate ,<br>INDEX_OWNER ,<br>INDEX_NAME ,<br>TABLE_OWNER ,<br>TABLE_NAME ,<br>COLUMN_NAME ,<br>COLUMN_POSITION,<br>v_tablespace_name<br>from v$session a,<br>sys.dba_ind_columns b<br>where b.index_NAME=ora_dict_obj_name<br>and b.index_OWNER=ora_dict_obj_owner<br>and a.sid=(select sid from v$mystat where rownum=1);<br>end if;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">end;<br>\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CREATE OR REPLACE procedure SECURITY.sp_all_tab_col as<br>v_version number;<br>v_tablespace_name dba_segments.tablespace_name%type;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">begin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">select nvl(max(version),0)<br>into v_version<br>from source_safe.ALL_TAB_COL_VERIONS<br>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">v_version:=v_version+1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if ora_dict_obj_type = &#8216;TABLE&#8217; then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">select tablespace_name<br>into v_tablespace_name<br>from dba_segments<br>where segment_name=ora_dict_obj_name<br>and segment_type=&#8217;TABLE&#8217;<br>and owner=ora_dict_obj_owner;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">insert into source_safe.ALL_TAB_COL_VERIONS<br>select username,<br>osuser,<br>terminal,<br>v_version,<br>sysdate,<br>OWNER,<br>TABLE_NAME,<br>COLUMN_NAME,<br>DATA_TYPE,<br>DATA_LENGTH,<br>DATA_PRECISION,<br>DATA_SCALE,<br>NULLABLE,<br>COLUMN_ID,<br>v_tablespace_name<br>from v$session a,<br>sys.dba_tab_cols b<br>where b.TABLE_NAME=ora_dict_obj_name<br>and b.OWNER=ora_dict_obj_owner<br>and a.sid=(select sid from v$mystat where rownum=1);<br>end if;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">end;<br>\/<br>CREATE OR REPLACE procedure SECURITY.sp_create_all_view_version as<br>v_version number;<br>v_text dba_views.TEXT%type;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">begin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">select nvl(max(version),0)<br>into v_version<br>from source_safe.all_views_code_versions<br>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">v_version:=v_version+1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if ora_dict_obj_type = &#8216;VIEW&#8217;<br>THEN<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SELECT text<br>INTO v_text<br>FROM dba_views<br>WHERE view_name = ora_dict_obj_name<br>and owner=ora_dict_obj_owner;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">insert into source_safe.all_views_code_versions<br>( USERNAME,<br>OS_USER,<br>TERMINAL,<br>VERSION,<br>DATE_OF_CHANGE,<br>OWNER,<br>VIEW_NAME,<br>TEXT_LENGTH,<br>TEXT<br>)<br>select user,<br>a.osuser,<br>a.terminal,<br>v_version,<br>sysdate,<br>b.OWNER,<br>b.VIEW_NAME,<br>b.TEXT_LENGTH,<br>v_text<br>from v$session a,<br>dba_views b<br>where a.sid = (select sid from v$mystat where rownum=1)<br>and b.owner = ora_dict_obj_owner<br>and b.view_name = ora_dict_obj_name;<br>end if;<br>end;<br>\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CREATE OR REPLACE procedure SECURITY.sp_source_safe_all_source as<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">v_version number;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">begin<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">select nvl(max(version),0)<br>into v_version<br>from source_safe.ALL_TAB_COL_VERIONS<br>;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">v_version:=v_version+1;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if (ora_dict_obj_type in<br>(&#8216;PCKAGE&#8217;,&#8217;PACKEGE BODY&#8217;,&#8217;PROCEDURE&#8217;,&#8217;FUNCTION&#8217;)) THEN<br>insert into source_safe.source_code_versions<br>select s.USERNAME,<br>s.OSUSER,<br>s.TERMINAL,<br>v_version,<br>sysdate,<br>so.LINE,<br>so.NAME,<br>so.OWNER,<br>so.TEXT,<br>so.TYPE<br>from sys.dba_source so,<br>sys.V_$SESSION s<br>where so.name=ora_dict_obj_name<br>and so.type=ora_dict_obj_type<br>and s.sid = (select sid from v$mystat where rownum=1);<br>end if;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">end;<br>\/<br>CREATE OR REPLACE TRIGGER security.after_create_index_trg<br>after create on database<br>begin<br>begin<br>sp_all_ind_col;<br>end;<br>end;<br>\/<br>CREATE OR REPLACE TRIGGER security.after_create_tab_trg<br>after create on database<br>begin<br>begin<br>sp_all_tab_col;<br>end;<br>end;<br>\/<br>CREATE OR REPLACE TRIGGER security.all_ind_col_trg<br>before alter or drop on database<br>begin<br>begin<br>sp_all_ind_col;<br>end;<br>end;<br>\/<br>CREATE OR REPLACE TRIGGER security.all_tab_col_trg<br>before alter or drop on database<br>begin<br>begin<br>sp_all_tab_col;<br>end;<br>end;<br>\/<br>CREATE OR REPLACE TRIGGER security.create_all_source_code_trigger<br>before create or drop on database<br>declare<br>begin<br>security.sp_source_safe_all_source;<br>end;<br>\/<br>CREATE OR REPLACE TRIGGER SECURITY.create_all_view_trigger<br>before create or drop on database<br>begin<br>begin<br>SECURITY.sp_create_all_view_version;<br>end;<br>end;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SOURCE SAVE Save the Source Code and Table and Index Structures using PL\/SQL After having gone through some papers on this subject, the need for a robust system has to be developed plugging all the holes, is felt and the result is this. The basic idea and the first paper that has been seen is &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/\"> <span class=\"screen-reader-text\">SOURCE SAVE<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":504,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"categories":[20],"tags":[],"class_list":["post-522","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pl-sql-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SOURCE SAVE - Ordba<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SOURCE SAVE - Ordba\" \/>\n<meta property=\"og:description\" content=\"SOURCE SAVE Save the Source Code and Table and Index Structures using PL\/SQL After having gone through some papers on this subject, the need for a robust system has to be developed plugging all the holes, is felt and the result is this. The basic idea and the first paper that has been seen is &hellip; SOURCE SAVE Read More &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/\" \/>\n<meta property=\"og:site_name\" content=\"Ordba\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-15T21:48:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-15T21:48:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/test.samplewebsitelink.com\/ordba\/wp-content\/uploads\/2023\/11\/article-3-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"700\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"ordba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ordba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/\",\"url\":\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/\",\"name\":\"SOURCE SAVE - Ordba\",\"isPartOf\":{\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/#website\"},\"datePublished\":\"2023-11-15T21:48:53+00:00\",\"dateModified\":\"2023-11-15T21:48:55+00:00\",\"author\":{\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/#\/schema\/person\/7365beabb32b7aa77cf0e890ee90ea0f\"},\"breadcrumb\":{\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.samplewebsitelink.com\/ordba\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SOURCE SAVE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/#website\",\"url\":\"https:\/\/test.samplewebsitelink.com\/ordba\/\",\"name\":\"Ordba\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/test.samplewebsitelink.com\/ordba\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/#\/schema\/person\/7365beabb32b7aa77cf0e890ee90ea0f\",\"name\":\"ordba\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.samplewebsitelink.com\/ordba\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd4335bb4e225c36ce7c56a0aff84bb202ebb523ebdc5d1e1a11cc3f3e6085f3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd4335bb4e225c36ce7c56a0aff84bb202ebb523ebdc5d1e1a11cc3f3e6085f3?s=96&d=mm&r=g\",\"caption\":\"ordba\"},\"sameAs\":[\"https:\/\/test.samplewebsitelink.com\/ordba\"],\"url\":\"https:\/\/test.samplewebsitelink.com\/ordba\/author\/ordba\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SOURCE SAVE - Ordba","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/","og_locale":"en_US","og_type":"article","og_title":"SOURCE SAVE - Ordba","og_description":"SOURCE SAVE Save the Source Code and Table and Index Structures using PL\/SQL After having gone through some papers on this subject, the need for a robust system has to be developed plugging all the holes, is felt and the result is this. The basic idea and the first paper that has been seen is &hellip; SOURCE SAVE Read More &raquo;","og_url":"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/","og_site_name":"Ordba","article_published_time":"2023-11-15T21:48:53+00:00","article_modified_time":"2023-11-15T21:48:55+00:00","og_image":[{"width":700,"height":700,"url":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-content\/uploads\/2023\/11\/article-3-1.jpg","type":"image\/jpeg"}],"author":"ordba","twitter_card":"summary_large_image","twitter_misc":{"Written by":"ordba","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/","url":"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/","name":"SOURCE SAVE - Ordba","isPartOf":{"@id":"https:\/\/test.samplewebsitelink.com\/ordba\/#website"},"datePublished":"2023-11-15T21:48:53+00:00","dateModified":"2023-11-15T21:48:55+00:00","author":{"@id":"https:\/\/test.samplewebsitelink.com\/ordba\/#\/schema\/person\/7365beabb32b7aa77cf0e890ee90ea0f"},"breadcrumb":{"@id":"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/test.samplewebsitelink.com\/ordba\/2023\/11\/15\/source-save\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.samplewebsitelink.com\/ordba\/"},{"@type":"ListItem","position":2,"name":"SOURCE SAVE"}]},{"@type":"WebSite","@id":"https:\/\/test.samplewebsitelink.com\/ordba\/#website","url":"https:\/\/test.samplewebsitelink.com\/ordba\/","name":"Ordba","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/test.samplewebsitelink.com\/ordba\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/test.samplewebsitelink.com\/ordba\/#\/schema\/person\/7365beabb32b7aa77cf0e890ee90ea0f","name":"ordba","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.samplewebsitelink.com\/ordba\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd4335bb4e225c36ce7c56a0aff84bb202ebb523ebdc5d1e1a11cc3f3e6085f3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd4335bb4e225c36ce7c56a0aff84bb202ebb523ebdc5d1e1a11cc3f3e6085f3?s=96&d=mm&r=g","caption":"ordba"},"sameAs":["https:\/\/test.samplewebsitelink.com\/ordba"],"url":"https:\/\/test.samplewebsitelink.com\/ordba\/author\/ordba\/"}]}},"_links":{"self":[{"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/posts\/522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/comments?post=522"}],"version-history":[{"count":1,"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/posts\/522\/revisions"}],"predecessor-version":[{"id":523,"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/posts\/522\/revisions\/523"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/media\/504"}],"wp:attachment":[{"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/media?parent=522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/categories?post=522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.samplewebsitelink.com\/ordba\/wp-json\/wp\/v2\/tags?post=522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}