{"id":391,"date":"2020-01-25T18:35:34","date_gmt":"2020-01-25T18:35:34","guid":{"rendered":"https:\/\/datablog.roman-halliday.com\/?p=391"},"modified":"2021-08-12T08:12:32","modified_gmt":"2021-08-12T08:12:32","slug":"how-to-move-tables-indexes-and-partitions-to-a-different-tablespace","status":"publish","type":"post","link":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/","title":{"rendered":"How to move tables, indexes and partitions to a different tablespace in Oracle"},"content":{"rendered":"\n<p>I had a case where I needed to move objects to a new tablespace, quite a few objects. As there was a lot of objects (tables, indexes and partitions) I decided to automate the code creation from the database metadata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Moving Objects To A New Tablespace<\/h2>\n\n\n\n<p>The first thing to understand is how to move each type of object into a different tablespace. This is done using an <code>ALTER<\/code> statement, on each of the object types.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">--------------------------------------------------------------------------------\n-- Move Table to new tablespace\n--------------------------------------------------------------------------------\n     ALTER\n     TABLE &lt;owner>.&lt;table_name>\n      MOVE\nTABLESPACE &lt;new_tablespace>\n;<\/pre>\n\n\n\n<p>After a table has been moved, the index will need rebuilding. There are two choices here;<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Rebuild the index, leaving it where it is\/was.<\/li><li>Rebuild the index, moving it at the new tablespace.<\/li><\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">--------------------------------------------------------------------------------\n-- Rebuild Index\n--------------------------------------------------------------------------------\n  ALTER\n  INDEX &lt;owner>.&lt;index_name>\nREBUILD\n;\n\n--------------------------------------------------------------------------------\n-- Move &amp; Rebuild Index\n--------------------------------------------------------------------------------\n     ALTER\n     INDEX &lt;owner>.&lt;index_name>\n   REBUILD\nTABLESPACE &lt;new_tablespace>\n;<\/pre>\n\n\n\n<p>If partitions are involved, then the alter statement needs to point to the individual partitions, and (if required) change the default tablespace for new partitions.<\/p>\n\n\n\n<p>This applies to both the table and index partitions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">--------------------------------------------------------------------------------\n-- Move TABLE Partition\n--------------------------------------------------------------------------------\n     ALTER\n     TABLE &lt;owner>.&lt;table_name>\n      MOVE\n PARTITION &lt;partition_name>\nTABLESPACE &lt;new_tablespace>\n;\n\n--------------------------------------------------------------------------------\n-- Move INDEX partition\n--------------------------------------------------------------------------------\n     ALTER\n     INDEX &lt;owner>.&lt;index_name>\n   REBUILD\n PARTITION &lt;index_partition_name>\nTABLESPACE &lt;new_tablespace>\n;\n\n--------------------------------------------------------------------------------\n-- Change the default tablespace\n--------------------------------------------------------------------------------\n     ALTER\n     INDEX &lt;owner>.&lt;index_name>\n    MODIFY DEFAULT ATTRIBUTES\nTABLESPACE &lt;new_tablespace>\n;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Create Alter Statements Using Oracle Metadata<\/h2>\n\n\n\n<p>Below is the SQL to create the above statements from the metadata within oracle. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">--------------------------------------------------------------------------------\n-- Create ALTER Statements\n-- - Change Table\/Index TABLESPACE\n-- - Modify Default index partition (partitioned tables)\n--------------------------------------------------------------------------------\nSELECT s.owner                       AS segment_owner,\n     --t.owner                       AS table_owner,\n     --i.owner                       AS index_owner,\n     --i.table_owner                 AS index_table_owner,\n       t.table_name,\n       s.Segment_Name,\n       s.Tablespace_Name,\n       s.Partition_Name,\n       s.Segment_Type,\n     --s.Bytes,\n     --s.Blocks,\n     --s.Extents,\n       CAST(s.bytes \/ 1024\/1024      AS NUMBER(20,2)) \"MB\",\n       CAST(s.bytes \/ 1024\/1024\/1024 AS NUMBER(6,2))  \"GB\",\n       q'[ALTER ]'\n       || CASE WHEN s.Segment_Type = 'INDEX PARTITION' THEN q'[INDEX]' WHEN s.Segment_Type = 'TABLE PARTITION' THEN q'[TABLE]' ELSE s.Segment_Type END --|| Segment_Type\n       || q'[ ]'\n       || s.owner --|| USER\n       || q'[.]' || s.Segment_Name\n       || CASE WHEN s.Segment_Type   IN ('INDEX', 'INDEX PARTITION') THEN q'[ REBUILD ]' ELSE q'[ MOVE ]' END\n       || CASE WHEN s.Segment_Type LIKE '% PARTITION'                THEN q'[PARTITION ]' || s.Partition_Name || q'[ ]' ELSE q'[]' END\n       || q'[TABLESPACE ]'\n       || q'[&lt;NEW_TABLESPACE>]'\n       || CASE WHEN s.Segment_Type = 'INDEX PARTITION'               THEN q'[ NOLOGGING]' ELSE q'[]' END\n       || q'[;]'\n                                     AS alter_statement,\n       CASE WHEN s.Segment_Type = 'TABLE PARTITION' THEN q'[ALTER TABLE ]' || s.Segment_Name || q'[ MODIFY DEFAULT ATTRIBUTES TABLESPACE ]' || q'[&lt;NEW_TABLESPACE>]' || q'[;]' ELSE NULL END AS default_table_partition,\n       CASE WHEN s.Segment_Type = 'INDEX PARTITION' THEN q'[ALTER INDEX ]' || s.Segment_Name || q'[ MODIFY DEFAULT ATTRIBUTES TABLESPACE ]' || q'[&lt;NEW_TABLESPACE>]' || q'[;]' ELSE NULL END AS default_index_partition\n  FROM Dba_Segments s\n     LEFT JOIN all_indexes i\n       ON i.index_name = s.Segment_Name\n      AND i.owner      = s.owner\n     LEFT JOIN all_tables t\n       ON t.table_name = COALESCE(i.table_name,  s.Segment_Name)\n      AND t.owner      = COALESCE(i.table_owner, s.owner)\n WHERE 1=1\n --AND s.tablespace_name &lt;> COALESCE(t.tablespace_name, '')\n --AND t.table_name   = '&lt;TABLE_NAME>'\n ORDER BY t.table_name,\n       s.Segment_Name\n;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Fixing Indexes<\/h2>\n\n\n\n<p>When doing movements like this, there can be indexes left behind. Below is the SQL to search for broken indexes, and use metadata to create the required rebuild statements.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">--------------------------------------------------------------------------------\n-- See Broken Indexes\n--------------------------------------------------------------------------------\nSELECT *\n  FROM all_indexes i\n WHERE 1=1\n   AND i.status NOT IN ('VALID', 'N\/A')\n;\n\n--------------------------------------------------------------------------------\n-- Rebuild (with move) Broken Indexes\n--------------------------------------------------------------------------------\nSELECT i.owner,\n     --s.owner             AS segment_owner,\n     --t.owner             AS table_owner,\n     --i.owner             AS index_owner,\n     --i.table_owner       AS index_table_owner,\n       t.table_name,\n     --s.Bytes, s.Blocks, s.Extents,\n       q'[ALTER ]'\n       || q'[INDEX]'\n       || q'[ ]'\n       || i.owner --|| USER\n       || q'[.]' || i.index_name\n       || q'[ REBUILD ]'\n       || q'[TABLESPACE ]'\n       || q'[&lt;NEW_TABLESPACE>]'\n       || q'[;]'           AS alter_statement\n  FROM all_indexes i\n     LEFT JOIN all_tables t\n       ON t.table_name = i.table_name\n      AND t.owner      = i.table_owner\n WHERE 1=1\n   AND i.status NOT IN ('VALID', 'N\/A')\n   AND i.owner = '&lt;OWNER>'\nORDER BY t.table_name,\n       i.index_name\n;\n\n--------------------------------------------------------------------------------\n-- Find Indexes to rebuild (at different levels)\n--\n-- Stolen from:\n-- https:\/\/www.orafaq.com\/wiki\/Unusable_indexes\n--------------------------------------------------------------------------------\n-- Whole indexes (all table)\nSELECT 'alter index '||owner||'.'||index_name||' rebuild tablespace '|| tablespace_name ||';' sql_to_rebuild_index,\n       i.*\n  FROM dba_indexes i\n WHERE i.status = 'UNUSABLE'\n;\n\n-- Indexes in partitions\nSELECT 'alter index '||index_owner||'.'||index_name ||' rebuild partition '||PARTITION_NAME||' TABLESPACE '||tablespace_name ||';' sql_to_rebuild_index,\n       i.*\n  FROM dba_ind_partitions i\n WHERE i.status       = 'UNUSABLE'\n;\n\n-- Indexes with subpartitions (we have none for now)\nSELECT 'alter index '||index_owner||'.'||index_name ||' rebuild subpartition '||SUBPARTITION_NAME||' TABLESPACE '||tablespace_name ||';' sql_to_rebuild_index,\n       i.*\n  FROM dba_ind_subpartitions i\n WHERE status = 'UNUSABLE'\n;\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I had a case where I needed to move objects to a new tablespace, quite a few objects. As there was a lot of objects (tables, indexes and partitions) I decided to automate the code creation from the database metadata. Moving Objects To A New Tablespace The first thing to understand is how to move&hellip;<\/p>\n<p class=\"read-more\"><a class=\"readmore-btn\" href=\"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/\">Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,6],"tags":[35],"class_list":["post-391","post","type-post","status-publish","format-standard","hentry","category-databases","category-oracle","tag-tablespace"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to move tables, indexes and partitions to a different tablespace in Oracle - Rows Across The Lake<\/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:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to move tables, indexes and partitions to a different tablespace in Oracle - Rows Across The Lake\" \/>\n<meta property=\"og:description\" content=\"I had a case where I needed to move objects to a new tablespace, quite a few objects. As there was a lot of objects (tables, indexes and partitions) I decided to automate the code creation from the database metadata. Moving Objects To A New Tablespace The first thing to understand is how to move&hellip;Read More Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/\" \/>\n<meta property=\"og:site_name\" content=\"Rows Across The Lake\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-25T18:35:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-12T08:12:32+00:00\" \/>\n<meta name=\"author\" content=\"david\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@d_roman_h\" \/>\n<meta name=\"twitter:site\" content=\"@d_roman_h\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"david\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/\"},\"author\":{\"name\":\"david\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\"},\"headline\":\"How to move tables, indexes and partitions to a different tablespace in Oracle\",\"datePublished\":\"2020-01-25T18:35:34+00:00\",\"dateModified\":\"2021-08-12T08:12:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/\"},\"wordCount\":207,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\"},\"keywords\":[\"tablespace\"],\"articleSection\":[\"Databases\",\"Oracle\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/\",\"url\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/\",\"name\":\"How to move tables, indexes and partitions to a different tablespace in Oracle - Rows Across The Lake\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#website\"},\"datePublished\":\"2020-01-25T18:35:34+00:00\",\"dateModified\":\"2021-08-12T08:12:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/index.php\\\/2020\\\/01\\\/25\\\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to move tables, indexes and partitions to a different tablespace in Oracle\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#website\",\"url\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/\",\"name\":\"Rows Across The Lake\",\"description\":\"Data &amp; Databases\",\"publisher\":{\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/datablog.roman-halliday.com\\\/#\\\/schema\\\/person\\\/575f96d2590c3085923ff9e1b565748b\",\"name\":\"david\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\",\"caption\":\"david\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to move tables, indexes and partitions to a different tablespace in Oracle - Rows Across The Lake","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:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/","og_locale":"en_GB","og_type":"article","og_title":"How to move tables, indexes and partitions to a different tablespace in Oracle - Rows Across The Lake","og_description":"I had a case where I needed to move objects to a new tablespace, quite a few objects. As there was a lot of objects (tables, indexes and partitions) I decided to automate the code creation from the database metadata. Moving Objects To A New Tablespace The first thing to understand is how to move&hellip;Read More Read More","og_url":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/","og_site_name":"Rows Across The Lake","article_published_time":"2020-01-25T18:35:34+00:00","article_modified_time":"2021-08-12T08:12:32+00:00","author":"david","twitter_card":"summary_large_image","twitter_creator":"@d_roman_h","twitter_site":"@d_roman_h","twitter_misc":{"Written by":"david","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/#article","isPartOf":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/"},"author":{"name":"david","@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b"},"headline":"How to move tables, indexes and partitions to a different tablespace in Oracle","datePublished":"2020-01-25T18:35:34+00:00","dateModified":"2021-08-12T08:12:32+00:00","mainEntityOfPage":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/"},"wordCount":207,"commentCount":2,"publisher":{"@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b"},"keywords":["tablespace"],"articleSection":["Databases","Oracle"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/","url":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/","name":"How to move tables, indexes and partitions to a different tablespace in Oracle - Rows Across The Lake","isPartOf":{"@id":"https:\/\/datablog.roman-halliday.com\/#website"},"datePublished":"2020-01-25T18:35:34+00:00","dateModified":"2021-08-12T08:12:32+00:00","breadcrumb":{"@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/datablog.roman-halliday.com\/index.php\/2020\/01\/25\/how-to-move-tables-indexes-and-partitions-to-a-different-tablespace\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/datablog.roman-halliday.com\/"},{"@type":"ListItem","position":2,"name":"How to move tables, indexes and partitions to a different tablespace in Oracle"}]},{"@type":"WebSite","@id":"https:\/\/datablog.roman-halliday.com\/#website","url":"https:\/\/datablog.roman-halliday.com\/","name":"Rows Across The Lake","description":"Data &amp; Databases","publisher":{"@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/datablog.roman-halliday.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/datablog.roman-halliday.com\/#\/schema\/person\/575f96d2590c3085923ff9e1b565748b","name":"david","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g","caption":"david"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/acddbc676a1d5c73795edcf0627ee39e5aa947da9033b58373e03d93122cb3b7?s=96&d=mm&r=g"}}]}},"_links":{"self":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts\/391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/comments?post=391"}],"version-history":[{"count":6,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts\/391\/revisions"}],"predecessor-version":[{"id":453,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/posts\/391\/revisions\/453"}],"wp:attachment":[{"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/media?parent=391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/categories?post=391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datablog.roman-halliday.com\/index.php\/wp-json\/wp\/v2\/tags?post=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}