{"id":48139,"date":"2026-11-02T08:38:00","date_gmt":"2026-11-02T07:38:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=48139"},"modified":"2026-10-26T20:43:33","modified_gmt":"2026-10-26T19:43:33","slug":"goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/","title":{"rendered":"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In an extract report, I noticed that the <code class=\"nowrap\">CREATE<\/code> and <code class=\"nowrap\">DROP<\/code> of a global temporary table were excluded (<code class=\"nowrap\"><a class=\"ogg-code-link\" href=\"https:\/\/juliendelattre.com\/tools\/goldengate-error-code-explorer\/OGG-10473\/\" target=\"_blank\" rel=\"noopener noreferrer\">OGG-10473<\/a><\/code>), while the <code class=\"nowrap\">TRUNCATE<\/code> of the same table was included (<code class=\"nowrap\"><a class=\"ogg-code-link\" href=\"https:\/\/juliendelattre.com\/tools\/goldengate-error-code-explorer\/OGG-00487\/\" target=\"_blank\" rel=\"noopener noreferrer\">OGG-00487<\/a><\/code>). If the extract writes the <code class=\"nowrap\">TRUNCATE<\/code> to the trail but not the <code class=\"nowrap\">CREATE<\/code>, the replicat will try to apply it on a target where the table does not exist. <strong>The replicat abends with <code class=\"nowrap\">ORA-00942<\/code><\/strong>. Oracle support confirmed that <strong>this is the designed behavior for temporary tables<\/strong>, so the <code class=\"nowrap\">TRUNCATE<\/code> has to be excluded or its error discarded in the replicat parameters. This post shows the failure, the affected DDL statements and ways to keep the replicat running.<\/p>\n\n\n\n<h2 id=\"why-global-temporary-table-ddl-is-excluded\" class=\"wp-block-heading\">Why global temporary table DDL is excluded<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The data of a global temporary table is private to each session and is not replicated. The extract therefore skips the DDL that creates and drops it, and the table does not exist on the target. However, <code class=\"nowrap\">TRUNCATE<\/code> operations are captured by GoldenGate.<\/p>\n\n\n\n<h2 id=\"setup\" class=\"wp-block-heading\">Setup<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GoldenGate <code class=\"nowrap\">23.26.4.0.0<\/code> Microservices Architecture, deployment <code class=\"nowrap\">ogg_test_01<\/code>.<\/li>\n\n\n\n<li>Source: <code class=\"nowrap\">CDB01<\/code>\/<code class=\"nowrap\">PDB1<\/code>, Oracle 19c. Target: <code class=\"nowrap\">CDB02<\/code>\/<code class=\"nowrap\">PDB2<\/code>, Oracle 19c.<\/li>\n\n\n\n<li>A <code class=\"nowrap\">GTTTEST<\/code> schema exists in both PDBs.<\/li>\n\n\n\n<li>Integrated extract <code class=\"nowrap\">EGTT<\/code> connects to <code class=\"nowrap\">PDB1<\/code> directly (PDB-level capture), with <code>DDL INCLUDE ALL<\/code>.<\/li>\n\n\n\n<li>Integrated replicat <code class=\"nowrap\">RGTT<\/code> applies to <code class=\"nowrap\">PDB2<\/code>, with <code>DDL INCLUDE ALL<\/code>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The parameter file of the extract:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXTRACT EGTT\nEXTTRAIL gt\nUSERIDALIAS source_pdb1 DOMAIN OracleGoldenGate\nDDL INCLUDE ALL\nDDLOPTIONS REPORT\nTABLE GTTTEST.*;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The parameter file of the replicat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>REPLICAT RGTT\nUSERIDALIAS oggadmin_pdb2 DOMAIN OracleGoldenGate\nDDL INCLUDE ALL\nDDLOPTIONS REPORT\nMAP GTTTEST.*, TARGET GTTTEST.*;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The extract is registered with <code>REGISTER EXTRACT EGTT DATABASE<\/code>, and the replicat uses the checkpoint table <code class=\"nowrap\">OGGADMIN.CHECKPOINT<\/code>.<\/p>\n\n\n\n<h2 id=\"workload-on-the-source\" class=\"wp-block-heading\">Workload on the source<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The three statements run as <code class=\"nowrap\">GTTTEST<\/code> on <code class=\"nowrap\">PDB1<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; CREATE GLOBAL TEMPORARY TABLE temp_test (c number) ON COMMIT PRESERVE ROWS;\n\nTable created.\n\nSQL&gt; TRUNCATE TABLE temp_test;\n\nTable truncated.\n\nSQL&gt; DROP TABLE temp_test PURGE;\n\nTable dropped.<\/code><\/pre>\n\n\n\n<h2 id=\"what-the-extract-does\" class=\"wp-block-heading\">What the extract does<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The extract report shows the three DDL statements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"nowrap\">CREATE<\/code> and <code class=\"nowrap\">DROP<\/code> are excluded.<\/li>\n\n\n\n<li><code class=\"nowrap\">TRUNCATE<\/code> is included.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>2026-10-24 07:26:05  INFO    OGG-01487  DDL found, operation &#091;CREATE GLOBAL TEMPORARY TABLE temp_test (c number) ON COMMIT PRESERVE ROWS (size 74)], ... ].\n2026-10-24 07:26:05  INFO    OGG-10473  DDL on global temporary table excluded, optype &#091;CREATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\n2026-10-24 07:26:05  INFO    OGG-01487  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)], ... ].\n2026-10-24 07:26:05  INFO    OGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;TRUNCATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\n2026-10-24 07:26:05  INFO    OGG-01487  DDL found, operation &#091;DROP TABLE temp_test PURGE (size 26)], ... ].\n2026-10-24 07:26:05  INFO    OGG-10473  DDL on global temporary table excluded, optype &#091;DROP], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Only the <code class=\"nowrap\">TRUNCATE<\/code> reaches the trail.<\/p>\n\n\n\n<h2 id=\"what-the-replicat-does\" class=\"wp-block-heading\">What the replicat does<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The replicat maps the <code class=\"nowrap\">TRUNCATE<\/code> to <code class=\"nowrap\">GTTTEST.TEMP_TEST<\/code> and executes it on <code class=\"nowrap\">PDB2<\/code>. The table does not exist there, and the replicat abends:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2026-10-24 07:26:08  INFO    OGG-00482  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)].\n2026-10-24 07:26:08  INFO    OGG-00489  DDL is of mapped scope, after mapping new operation &#091;TRUNCATE TABLE \"GTTTEST\".\"TEMP_TEST\" (size 36)].\n2026-10-24 07:26:08  INFO    OGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;TRUNCATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\n2026-10-24 07:26:08  INFO    OGG-00484  Executing DDL operation.\n2026-10-24 07:26:08  ERROR   OGG-00519  Fatal error executing DDL replication: error &#091;Error code &#091;942], ORA-00942: table or view does not exist\n2026-10-24 07:26:08  ERROR   OGG-30538  Fatal error executing DDL statement &#091;TRUNCATE TABLE \"GTTTEST\".\"TEMP_TEST\"].\n2026-10-24 07:26:08  ERROR   OGG-00664  Error 942 on OCI call &#091;ORA] - ORA-00942: table or view does not exist\n2026-10-24 07:26:13  ERROR   OGG-01668  PROCESS ABENDING.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The status in the <code class=\"nowrap\">adminclient<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OGG (http:\/\/localhost:7810 ogg_test_01) 2&gt; INFO ALL\n\nProgram     Status      Group       Type                   Lag at Chkpt       Time Since Chkpt\nEXTRACT     RUNNING     EGTT        INTEGRATED                  00:00:03           00:00:04\nREPLICAT    ABENDED     RGTT        INTEGRATED                  00:00:04           00:00:13<\/code><\/pre>\n\n\n\n<h2 id=\"ddloptions-for-global-temporary-tables\" class=\"wp-block-heading\"><code class=\"nowrap\">DDLOPTIONS<\/code> for global temporary tables<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/docs.oracle.com\/en\/database\/goldengate\/core\/26\/reference\/ddloptions.html\" target=\"_blank\" rel=\"noopener noreferrer\"><code class=\"nowrap\">DDLOPTIONS<\/code> documentation<\/a> describes two options for global temporary tables. By default, GTT DDL is not visible to the extract, which does not match the <code class=\"nowrap\">TRUNCATE<\/code> captured above.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code class=\"nowrap\">CAPTUREGLOBALTEMPTABLE<\/code> (extract): makes GTT DDL visible to the extract. It is filtered like any other DDL and, if it passes, written to the trail.<\/li>\n\n\n\n<li><code class=\"nowrap\">NOAPPLYGLOBALTEMPTABLE<\/code> (replicat): prevents the replicat from applying GTT DDL. Without it, the replicat applies all GTT DDL from the trail.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Every case uses the same workload. It has the three GTT statements, then a regular table with one row going through <code class=\"nowrap\">CREATE<\/code>, <code class=\"nowrap\">TRUNCATE<\/code> and <code class=\"nowrap\">DROP<\/code>. Each case starts from a new extract, replicat and trail.<\/p>\n\n\n\n<h3 id=\"noapplyglobaltemptable-on-the-replicat\" class=\"wp-block-heading\"><code class=\"nowrap\">NOAPPLYGLOBALTEMPTABLE<\/code> on the replicat<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The parameter file of the replicat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>REPLICAT RGTT\nUSERIDALIAS oggadmin_pdb2 DOMAIN OracleGoldenGate\nDDL INCLUDE ALL\nDDLOPTIONS REPORT, NOAPPLYGLOBALTEMPTABLE\nMAP GTTTEST.*, TARGET GTTTEST.*;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The replicat still abends on the <code class=\"nowrap\">TRUNCATE<\/code><\/strong>, with the same errors as without the option:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)].\nERROR   OGG-00519  Fatal error executing DDL replication: error &#091;Error code &#091;942], ORA-00942: table or view does not exist\nERROR   OGG-01668  PROCESS ABENDING.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the GTT already exists on the target, the replicat does not abend, because the <code class=\"nowrap\">TRUNCATE<\/code> is applied to that table.<\/p>\n\n\n\n<h3 id=\"captureglobaltemptable-on-the-extract\" class=\"wp-block-heading\"><code class=\"nowrap\">CAPTUREGLOBALTEMPTABLE<\/code> on the extract<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">With <code>DDLOPTIONS REPORT, CAPTUREGLOBALTEMPTABLE<\/code> in the extract, the <code class=\"nowrap\">CREATE<\/code> and <code class=\"nowrap\">DROP<\/code> are no longer excluded:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;CREATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nOGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;TRUNCATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nOGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;DROP], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The replicat creates the table on the target, truncates it and drops it. <strong>It keeps running:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;CREATE GLOBAL TEMPORARY TABLE temp_test (c number) ON COMMIT PRESERVE ROWS (size 74)].\nINFO    OGG-00489  DDL is of mapped scope, after mapping new operation &#091;CREATE GLOBAL TEMPORARY TABLE \"GTTTEST\".\"TEMP_TEST\" (c number) ON COMMIT PRESERVE ROWS (size 86)].\nINFO    OGG-00482  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)].\nINFO    OGG-00482  DDL found, operation &#091;DROP TABLE temp_test PURGE (size 26)].<\/code><\/pre>\n\n\n\n<h3 id=\"both-options-together\" class=\"wp-block-heading\">Both options together<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">With <code class=\"nowrap\">CAPTUREGLOBALTEMPTABLE<\/code> on the extract and <code class=\"nowrap\">NOAPPLYGLOBALTEMPTABLE<\/code> on the replicat, the replicat excludes the <code class=\"nowrap\">CREATE<\/code> and <strong>still executes the <code class=\"nowrap\">TRUNCATE<\/code><\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;CREATE GLOBAL TEMPORARY TABLE temp_test (c number) ON COMMIT PRESERVE ROWS (size 74)].\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;CREATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00482  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)].\nERROR   OGG-00519  Fatal error executing DDL replication: error &#091;Error code &#091;942], ORA-00942: table or view does not exist\nERROR   OGG-01668  PROCESS ABENDING.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The replicat abends on the <code class=\"nowrap\">TRUNCATE<\/code> before it reaches the <code class=\"nowrap\">DROP<\/code>. To check the <code class=\"nowrap\">DROP<\/code>, the same two options run with a workload that has no <code class=\"nowrap\">TRUNCATE<\/code> on the global temporary table. <strong>The replicat excludes both the <code class=\"nowrap\">CREATE<\/code> and the <code class=\"nowrap\">DROP<\/code><\/strong> and keeps running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;CREATE GLOBAL TEMPORARY TABLE temp_test (c number) ON COMMIT PRESERVE ROWS (size 74)].\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;CREATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00482  DDL found, operation &#091;DROP TABLE temp_test PURGE (size 26)].\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;DROP], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">So <code class=\"nowrap\">NOAPPLYGLOBALTEMPTABLE<\/code> skips the <code class=\"nowrap\">CREATE<\/code> and <code class=\"nowrap\">DROP<\/code> of a global temporary table, but not its <code class=\"nowrap\">TRUNCATE<\/code>.<\/p>\n\n\n\n<h2 id=\"which-ddl-statements-are-affected\" class=\"wp-block-heading\">Which DDL statements are affected<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <code class=\"nowrap\">TRUNCATE<\/code> is not the only statement that behaves differently from <code class=\"nowrap\">CREATE<\/code> and <code class=\"nowrap\">DROP<\/code>. This workload runs on the source with the default extract (no <code class=\"nowrap\">CAPTUREGLOBALTEMPTABLE<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE GLOBAL TEMPORARY TABLE temp_test (c number) ON COMMIT PRESERVE ROWS;\nALTER TABLE temp_test ADD (d number);\nCOMMENT ON TABLE temp_test IS 'gtt';\nCREATE INDEX temp_test_i ON temp_test(c);\nTRUNCATE TABLE temp_test;\nALTER TABLE temp_test RENAME TO temp_test2;\nDROP TABLE temp_test2 PURGE;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The extract excludes five of the seven statements and <strong>includes <code class=\"nowrap\">COMMENT<\/code> and <code class=\"nowrap\">TRUNCATE<\/code><\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-10473  DDL on global temporary table excluded, optype &#091;CREATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;ALTER], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;COMMENT], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;CREATE], objtype &#091;INDEX], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;TRUNCATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;ALTER], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST2\".\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;DROP], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST2\".<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">With <code class=\"nowrap\">CAPTUREGLOBALTEMPTABLE<\/code> on the extract and <code class=\"nowrap\">NOAPPLYGLOBALTEMPTABLE<\/code> on the replicat, the extract captures every statement and the replicat makes the same decision. It excludes <code class=\"nowrap\">CREATE<\/code> and <code class=\"nowrap\">ALTER<\/code> (<code class=\"nowrap\">OGG-10473<\/code>), then applies the <code class=\"nowrap\">COMMENT<\/code> and <strong>abends<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;ALTER TABLE temp_test ADD (d number) (size 36)].\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;ALTER], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00482  DDL found, operation &#091;COMMENT ON TABLE temp_test IS 'gtt' (size 35)].\nINFO    OGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;COMMENT], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nERROR   OGG-00519  Fatal error executing DDL replication: error &#091;Error code &#091;942], ORA-00942: table or view does not exist\nERROR   OGG-30538  Fatal error executing DDL statement &#091;COMMENT ON TABLE \"GTTTEST\".\"TEMP_TEST\" IS 'gtt'].\nERROR   OGG-01668  PROCESS ABENDING.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Each statement runs separately to see what the replicat does with it:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Statement on the global temporary table<\/th><th>Replicat<\/th><\/tr><\/thead><tbody><tr><td><code>CREATE TABLE<\/code>, <code>DROP TABLE<\/code><\/td><td>Excluded (<code class=\"nowrap\">OGG-10473<\/code>)<\/td><\/tr><tr><td><code>ALTER TABLE .<wbr>.<wbr>.<wbr> ADD<\/code>, <code>ALTER TABLE .<wbr>.<wbr>.<wbr> RENAME TO<\/code><\/td><td>Excluded (<code class=\"nowrap\">OGG-10473<\/code>)<\/td><\/tr><tr><td><code>CREATE INDEX<\/code>, <code class=\"nowrap\">GRANT<\/code><\/td><td>Excluded (<code class=\"nowrap\">OGG-10473<\/code>)<\/td><\/tr><tr><td><code>TRUNCATE TABLE<\/code><\/td><td><strong>Applied, abends with <code class=\"nowrap\">ORA-00942<\/code><\/strong><\/td><\/tr><tr><td><code>COMMENT ON TABLE<\/code>, <code>COMMENT ON COLUMN<\/code><\/td><td><strong>Applied, abends with <code class=\"nowrap\">ORA-00942<\/code><\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"scope-and-truncate-options-do-not-change-it\" class=\"wp-block-heading\">Scope and truncate options do not change it<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A difference in DDL scope could explain why <code class=\"nowrap\">CREATE<\/code> is excluded and <code class=\"nowrap\">TRUNCATE<\/code> is not. However, with <code>DDL INCLUDE MAPPED<\/code> on the replicat, the <code class=\"nowrap\">TRUNCATE<\/code> is still included and the replicat abends:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)].\nINFO    OGG-00487  DDL operation included &#091;INCLUDE MAPPED], optype &#091;TRUNCATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nERROR   OGG-00519  Fatal error executing DDL replication: error &#091;Error code &#091;942], ORA-00942: table or view does not exist\nERROR   OGG-30538  Fatal error executing DDL statement &#091;TRUNCATE TABLE \"GTTTEST\".\"TEMP_TEST\"].\nERROR   OGG-01668  PROCESS ABENDING.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The same happens with <code class=\"nowrap\">GETTRUNCATES<\/code> and with <code class=\"nowrap\">IGNORETRUNCATES<\/code> in the replicat, and with a global temporary table created with <code>ON COMMIT DELETE ROWS<\/code>. Those parameters control the truncate operation of the data, not the <code class=\"nowrap\">TRUNCATE<\/code> DDL statement.<\/p>\n\n\n\n<h2 id=\"answer-from-oracle-support\" class=\"wp-block-heading\">Answer from Oracle Support<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I opened a service request with Oracle. The Product Team answered that <code>TRUNCATE TABLE<\/code> is a DDL operation and has to be excluded with an <code class=\"nowrap\">EXCLUDE<\/code> clause of the <code class=\"nowrap\">DDL<\/code> parameter. DDL cannot be filtered by temporary versus permanent tables, so the exclusion is done by table name. If that is too much work, the alternative is <code>DDLERROR 942 DISCARD<\/code>. I then pointed out that <code class=\"nowrap\">CREATE<\/code> and <code class=\"nowrap\">DROP<\/code> are DDL operations too and are excluded. The answer was that <strong>this is how it is designed for temporary tables<\/strong>.<\/p>\n\n\n\n<h2 id=\"keeping-the-replicat-running\" class=\"wp-block-heading\">Keeping the replicat running<\/h2>\n\n\n\n<h3 id=\"exclude-the-truncate-by-table-name\" class=\"wp-block-heading\">Exclude the <code class=\"nowrap\">TRUNCATE<\/code> by table name<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <code class=\"nowrap\">DDL<\/code> parameter of the replicat excludes the <code class=\"nowrap\">TRUNCATE<\/code> of the table:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>REPLICAT RGTT\nUSERIDALIAS oggadmin_pdb2 DOMAIN OracleGoldenGate\nDDL INCLUDE ALL, EXCLUDE OBJNAME GTTTEST.TEMP_TEST OPTYPE TRUNCATE\nDDLOPTIONS REPORT, NOAPPLYGLOBALTEMPTABLE\nMAP GTTTEST.*, TARGET GTTTEST.*;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The replicat finds the <code class=\"nowrap\">TRUNCATE<\/code> and skips it with an informational message, <code class=\"nowrap\"><a class=\"ogg-code-link\" href=\"https:\/\/juliendelattre.com\/tools\/goldengate-error-code-explorer\/OGG-00488\/\" target=\"_blank\" rel=\"noopener noreferrer\">OGG-00488<\/a><\/code>. <strong>It keeps running<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;CREATE GLOBAL TEMPORARY TABLE temp_test (c number) ON COMMIT PRESERVE ROWS (size 74)].\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;CREATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00482  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)].\nINFO    OGG-00489  DDL is of mapped scope, after mapping new operation &#091;TRUNCATE TABLE \"GTTTEST\".\"TEMP_TEST\" (size 36)].\nINFO    OGG-00488  DDL operation excluded &#091;EXCLUDE OBJNAME GTTTEST.TEMP_TEST OPTYPE TRUNCATE], optype &#091;TRUNCATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00482  DDL found, operation &#091;DROP TABLE temp_test PURGE (size 26)].\nINFO    OGG-10473  DDL on global temporary table excluded, optype &#091;DROP], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The exclusion works per table name, so it has to list every global temporary table. <code>COMMENT ON TABLE<\/code> and <code>COMMENT ON COLUMN<\/code> abend the same way, so the exclusion must cover them too.<\/p>\n\n\n\n<h3 id=\"discard-the-ora-00942-error\" class=\"wp-block-heading\">Discard the <code class=\"nowrap\">ORA-00942<\/code> error<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>DDLERROR 942 DISCARD<\/code> needs no table list. The replicat applies the <code class=\"nowrap\">TRUNCATE<\/code>, receives <code class=\"nowrap\">ORA-00942<\/code> from the target and discards the error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>REPLICAT RGTT\nUSERIDALIAS oggadmin_pdb2 DOMAIN OracleGoldenGate\nDISCARDFILE RGTT.dsc, APPEND\nDDL INCLUDE ALL\nDDLOPTIONS REPORT\nDDLERROR 942 DISCARD\nMAP GTTTEST.*, TARGET GTTTEST.*;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The report shows <code class=\"nowrap\"><a class=\"ogg-code-link\" href=\"https:\/\/juliendelattre.com\/tools\/goldengate-error-code-explorer\/OGG-00494\/\" target=\"_blank\" rel=\"noopener noreferrer\">OGG-00494<\/a><\/code> instead of the abend:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INFO    OGG-00482  DDL found, operation &#091;TRUNCATE TABLE temp_test (size 24)].\nINFO    OGG-00487  DDL operation included &#091;INCLUDE ALL], optype &#091;TRUNCATE], objtype &#091;TABLE], objowner \"GTTTEST\", objname \"TEMP_TEST\".\nINFO    OGG-00494  DDL error discarded: error code &#091;942], filter &#091;include all (default)], error text &#091;Current time: 2026-10-24 07:55:57\n Error text &#091;Error code &#091;942], ORA-00942: table or view does not exist<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>OGG (http:\/\/localhost:7810 ogg_test_01) 2&gt; INFO ALL\n\nProgram     Status      Group       Type                   Lag at Chkpt       Time Since Chkpt\nEXTRACT     RUNNING     EGTT        INTEGRATED                  00:00:03           00:00:07\nREPLICAT    RUNNING     RGTT        INTEGRATED                  00:00:00           00:00:06<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The discard file <code class=\"nowrap\">RGTT.dsc<\/code> has the statement:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Current time: 2026-10-24 07:55:57\n Error text &#091;Error code &#091;942], ORA-00942: table or view does not exist\nHelp: https:\/\/docs.oracle.com\/error-help\/db\/ora-00942\/\n], operation &#091;TRUNCATE TABLE \"GTTTEST\".\"TEMP_TEST\" (size 36)]\nOperation failed at seqno 0 rba 1,333.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The parameter applies to every DDL statement that fails with <code class=\"nowrap\">ORA-00942<\/code>, not only to temporary tables. A statement that fails because a regular table is missing on the target is discarded too, so check the discard file regularly.<\/p>\n\n\n\n<h2 id=\"summary\" class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>With <code>DDL INCLUDE ALL<\/code>, the extract excludes <code class=\"nowrap\">CREATE<\/code>, <code class=\"nowrap\">ALTER<\/code>, <code>CREATE INDEX<\/code> and <code class=\"nowrap\">DROP<\/code> of a global temporary table (<code class=\"nowrap\">OGG-10473<\/code>) but includes <code class=\"nowrap\">TRUNCATE<\/code> and <code class=\"nowrap\">COMMENT<\/code> (<code class=\"nowrap\">OGG-00487<\/code>).<\/li>\n\n\n\n<li>The <code class=\"nowrap\">TRUNCATE<\/code> is written to the trail and applied by the replicat on a target that has no such table.<\/li>\n\n\n\n<li>The replicat abends with <code class=\"nowrap\">ORA-00942<\/code> (<code class=\"nowrap\"><a class=\"ogg-code-link\" href=\"https:\/\/juliendelattre.com\/tools\/goldengate-error-code-explorer\/OGG-00519\/\" target=\"_blank\" rel=\"noopener noreferrer\">OGG-00519<\/a><\/code>, <code class=\"nowrap\"><a class=\"ogg-code-link\" href=\"https:\/\/juliendelattre.com\/tools\/goldengate-error-code-explorer\/OGG-30538\/\" target=\"_blank\" rel=\"noopener noreferrer\">OGG-30538<\/a><\/code>, <code class=\"nowrap\"><a class=\"ogg-code-link\" href=\"https:\/\/juliendelattre.com\/tools\/goldengate-error-code-explorer\/OGG-01668\/\" target=\"_blank\" rel=\"noopener noreferrer\">OGG-01668<\/a><\/code>).<\/li>\n\n\n\n<li><code>DDL INCLUDE MAPPED<\/code>, <code class=\"nowrap\">GETTRUNCATES<\/code> and <code class=\"nowrap\">IGNORETRUNCATES<\/code> do not change the abend.<\/li>\n\n\n\n<li><code class=\"nowrap\">NOAPPLYGLOBALTEMPTABLE<\/code> on the replicat does not prevent it, because the <code class=\"nowrap\">TRUNCATE<\/code> is still executed.<\/li>\n\n\n\n<li><code class=\"nowrap\">CAPTUREGLOBALTEMPTABLE<\/code> on the extract makes the whole <code class=\"nowrap\">CREATE<\/code>, <code class=\"nowrap\">TRUNCATE<\/code> and <code class=\"nowrap\">DROP<\/code> sequence replicate without error.<\/li>\n\n\n\n<li>Oracle support confirmed that this is the designed behavior for temporary tables.<\/li>\n\n\n\n<li><code>DDL EXCLUDE OBJNAME &lt;table&gt; OPTYPE TRUNCATE<\/code> on the replicat skips the <code class=\"nowrap\">TRUNCATE<\/code> for the listed tables.<\/li>\n\n\n\n<li><code>DDLERROR 942 DISCARD<\/code> on the replicat keeps it running for all tables and writes the failed statement to the discard file.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In an extract report, I noticed that the CREATE and DROP of a global temporary table were excluded (OGG-10473), while the TRUNCATE of the same table was included (OGG-00487). If the extract writes the TRUNCATE to the trail but not the CREATE, the replicat will try to apply it on a target where the table [&hellip;]<\/p>\n","protected":false},"author":152,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3787,59],"tags":[3827,4220,3781,328,3730,3976,44],"type_dbi":[3828,4221,3785,3740,3881,3977,4175],"class_list":["post-48139","post","type-post","status-publish","format-standard","hentry","category-goldengate","category-oracle","tag-3827","tag-ddl","tag-extract","tag-goldengate","tag-ogg","tag-replicat","tag-troubleshooting","type-3828","type-ddl","type-extract","type-goldengate","type-ogg","type-replicat","type-troubleshooting"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>GoldenGate captures TRUNCATE on a global temporary table and the replicat abends - dbi Blog<\/title>\n<meta name=\"description\" content=\"A GoldenGate global temporary table TRUNCATE is captured and applied, so the replicat abends with ORA-00942. Oracle says it is by design.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends\" \/>\n<meta property=\"og:description\" content=\"A GoldenGate global temporary table TRUNCATE is captured and applied, so the replicat abends with ORA-00942. Oracle says it is by design.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-02T07:38:00+00:00\" \/>\n<meta name=\"author\" content=\"Julien Delattre\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julien Delattre\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/\"},\"author\":{\"name\":\"Julien Delattre\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/812297b963933317cfcbbf006a273eec\"},\"headline\":\"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends\",\"datePublished\":\"2026-11-02T07:38:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/\"},\"wordCount\":991,\"commentCount\":0,\"keywords\":[\"26\",\"ddl\",\"extract\",\"GoldenGate\",\"ogg\",\"replicat\",\"Troubleshooting\"],\"articleSection\":[\"GoldenGate\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/\",\"name\":\"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-11-02T07:38:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/812297b963933317cfcbbf006a273eec\"},\"description\":\"A GoldenGate global temporary table TRUNCATE is captured and applied, so the replicat abends with ORA-00942. Oracle says it is by design.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/812297b963933317cfcbbf006a273eec\",\"name\":\"Julien Delattre\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g\",\"caption\":\"Julien Delattre\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/juliendelattre\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends - dbi Blog","description":"A GoldenGate global temporary table TRUNCATE is captured and applied, so the replicat abends with ORA-00942. Oracle says it is by design.","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:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/","og_locale":"en_US","og_type":"article","og_title":"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends","og_description":"A GoldenGate global temporary table TRUNCATE is captured and applied, so the replicat abends with ORA-00942. Oracle says it is by design.","og_url":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/","og_site_name":"dbi Blog","article_published_time":"2026-11-02T07:38:00+00:00","author":"Julien Delattre","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Julien Delattre","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/"},"author":{"name":"Julien Delattre","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/812297b963933317cfcbbf006a273eec"},"headline":"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends","datePublished":"2026-11-02T07:38:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/"},"wordCount":991,"commentCount":0,"keywords":["26","ddl","extract","GoldenGate","ogg","replicat","Troubleshooting"],"articleSection":["GoldenGate","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/","url":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/","name":"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2026-11-02T07:38:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/812297b963933317cfcbbf006a273eec"},"description":"A GoldenGate global temporary table TRUNCATE is captured and applied, so the replicat abends with ORA-00942. Oracle says it is by design.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/goldengate-captures-truncate-on-a-global-temporary-table-and-the-replicat-abends\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GoldenGate captures TRUNCATE on a global temporary table and the replicat abends"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/812297b963933317cfcbbf006a273eec","name":"Julien Delattre","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a97d00e680bbf237126e24b65281cbcb66cd20bd1ed2d14bf928991b2bf68eb5?s=96&d=mm&r=g","caption":"Julien Delattre"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/juliendelattre\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/48139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/152"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=48139"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/48139\/revisions"}],"predecessor-version":[{"id":48140,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/48139\/revisions\/48140"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=48139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=48139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=48139"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=48139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}