{"id":1283,"date":"2026-09-18T01:24:05","date_gmt":"2026-09-18T01:24:05","guid":{"rendered":"https:\/\/www.kingbaseglobal.com\/blog\/tech-blog\/automated-oracle-schema-migration-selection-criteria-for\/"},"modified":"2026-09-18T01:24:05","modified_gmt":"2026-09-18T01:24:05","slug":"automated-oracle-schema-migration-selection-criteria-for","status":"publish","type":"post","link":"https:\/\/www.kingbaseglobal.com\/blog\/tech-blog\/automated-oracle-schema-migration-selection-criteria-for\/","title":{"rendered":"Automated Oracle Schema Migration_ Selection Criteria for"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/kingbase-bbs.oss-cn-beijing.aliyuncs.com\/qywx\/blogImage\/57ad1876-0597-495c-815f-7385a9e9141a.webp\" alt=\"A close-up of a sorting tray with compartments holding sample blocks, symbolizing the rigorous selection criteria for database migration tools.\" \/><\/p>\n<h2>Automated Oracle Schema Migration: A Disqualifier-First Selection Guide for Enterprise Architects<\/h2>\n<h2>Define Workload and Stakeholder Requirements Before Evaluation<\/h2>\n<p>Before evaluating any automated migration tool or target database, enterprise architects must inventory their specific Oracle dependencies. The primary risk in an automated Oracle schema migration is not the tool itself, but the assumption that a single tool handles every proprietary Oracle feature without manual intervention.<\/p>\n<p>Stakeholders must define the following requirements to establish a baseline for selection:<\/p>\n<ul>\n<li><strong>Feature Inventory<\/strong>: List all proprietary Oracle features used, including specific partitioning strategies, complex PL\/SQL packages, and custom system views.<\/li>\n<li><strong>Complexity Thresholds<\/strong>: Define the maximum size of PL\/SQL packages (e.g., number of functions) and the acceptable ratio of automated success versus manual rework.<\/li>\n<li><strong>Regulatory Constraints<\/strong>: Identify specific data residency, encryption, and access control requirements mandated by local regulations (e.g., Malaysia&#8217;s PDPA). Note that the organization is responsible for verifying data residency and encryption key locations; the vendor does not automatically guarantee compliance.<\/li>\n<li><strong>Performance Baselines<\/strong>: Establish current performance metrics (latency, throughput) to compare against the target environment.<\/li>\n<\/ul>\n<p>Without these defined requirements, it is impossible to determine if a tool is suitable or if a specific workload will require significant manual refactoring.<\/p>\n<h2>High-Risk Oracle Features Requiring Manual Intervention<\/h2>\n<p>A &quot;Disqualifier-First&quot; approach requires identifying features that are <em>not<\/em> supported or are high-risk in the target environment. While <strong>KingbaseES V009R002C012<\/strong> supports many Oracle features, the absence of a feature in the supported list is a disqualifier for automated migration.<\/p>\n<p>The following table highlights features that, if absent from your workload&#8217;s supported list, necessitate manual intervention. If your workload relies on features not explicitly listed as supported in the target version, the &quot;automated&quot; path may require significant manual effort.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">Oracle Feature<\/th>\n<th style=\"text-align:left\"><strong>KingbaseES<\/strong> Support Status<\/th>\n<th style=\"text-align:left\">Migration Implication<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><strong>System Views<\/strong> (V$VERSION, V$SESSION, V$LOCKED_OBJECT)<\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Application code referencing these views should convert automatically.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Partitioning Views<\/strong> (ALL_PART_INDEXES, DBA__PART_INDEXES)<\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Partitioning metadata queries should function without code changes.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>LISTAGG with WITH GROUP<\/strong><\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Aggregation logic remains compatible.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Collection Initialization (NEW keyword)<\/strong><\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Nested tables and varrays initialize correctly.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Package Capacity<\/strong><\/td>\n<td style=\"text-align:left\">Supports nearly 10,000 functions in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk for large packages.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>DETERMINISTIC Keyword<\/strong><\/td>\n<td style=\"text-align:left\">Supported in package headers (V009R002C012)<\/td>\n<td style=\"text-align:left\">Low risk. No need to re-declare in package bodies.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>ANYDATASET Collection Type<\/strong><\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Heterogeneous data handling is native.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>CONCAT with Arbitrary Params<\/strong><\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. String concatenation logic is preserved.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>TIMESTAMPADD \/ Multi-format TO_TIMESTAMP<\/strong><\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Date\/time calculations convert cleanly.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>%ROWTYPE Parameter Matching<\/strong><\/td>\n<td style=\"text-align:left\">Automatic recognition in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Stored procedure calls match types automatically.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>PARALLEL_ENABLE Subclause<\/strong><\/td>\n<td style=\"text-align:left\">Supported in V009R002C012<\/td>\n<td style=\"text-align:left\">Low risk. Function concurrency attributes are preserved.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If your workload depends on features outside this list, such as specific Oracle partitioning strategies not covered above or proprietary extensions, the &quot;automated&quot; path may require significant manual effort. <strong>KingbaseES V009R002C013<\/strong> claims to achieve full-stack replacement from syntax to performance compatibility, but users must verify this against their specific schema objects. Do not assume feature parity based on marketing claims. The presence of these features reduces the burden on the migration tool, but it does not eliminate the need for validation.<\/p>\n<h2>Beyond Syntax: Quantifying the PL\/SQL Translation Gap and Rework Ratio<\/h2>\n<p>Syntax support is a binary state, but PL\/SQL translation is a spectrum of complexity. The critical metric for selection is not whether a tool <em>can<\/em> convert code, but the ratio of automated success versus manual rework for complex enterprise packages. A tool that claims &quot;one-click&quot; conversion often fails to handle the logic within stored procedures, leaving the database in a broken state.<\/p>\n<p>When evaluating the <strong>KDMS<\/strong> migration tool or similar solutions, demand quantitative evidence on how they handle massive PL\/SQL packages. <strong>KingbaseES V009R002C012<\/strong> supports packages with nearly 10,000 functions, a capacity that matches large enterprise workloads. However, the tool must successfully translate the logic within these packages without altering the business rules.<\/p>\n<p>The evaluation framework should include:<\/p>\n<ol>\n<li><strong>Package Size Thresholds<\/strong>: Can the tool process a package with 5,000 to 10,000 functions in a single pass?<\/li>\n<li><strong>Logic Fidelity<\/strong>: Does the tool preserve conditional logic, exception handling, and cursor management?<\/li>\n<li><strong>Error Reporting<\/strong>: Does the tool provide a detailed report of lines that failed conversion or require manual review?<\/li>\n<\/ol>\n<p><strong>KingbaseES V009R002C013<\/strong> aims to achieve full-stack compatibility, but users must verify this against their specific workload. If your workload relies heavily on complex PL\/SQL, the target database must support the syntax to minimize the tool&#8217;s burden. If the target database lacks support for a specific PL\/SQL construct, the tool cannot automate the fix. You must define an acceptable rework threshold (e.g., less than 5% of total lines) before selecting a vendor. Without this metric, you risk a &quot;false automation&quot; scenario where the tool generates code that requires more manual debugging than writing the code from scratch.<\/p>\n<h2>Dependency Resolution and Integrity: The Silent Killer of Schema Migration<\/h2>\n<p>Schema migration is not merely about converting individual objects; it is about preserving the web of dependencies between tables, views, procedures, and triggers. A migration tool that fails to resolve these dependencies can break referential integrity or leave the application unable to start.<\/p>\n<p>The <strong>KDMS<\/strong> tool operates on a &quot;Cloud + Endpoint + Service&quot; architecture designed to generate migration assessment reports. This pre-migration phase is critical. The tool must analyze the dependency graph of your Oracle schema and identify objects that rely on unsupported features or specific Oracle behaviors.<\/p>\n<p>To ensure integrity, the selection process must verify the following steps:<\/p>\n<ol>\n<li><strong>Dependency Graph Analysis<\/strong>: The tool must map all object dependencies before conversion begins.<\/li>\n<li><strong>Object-Level Validation<\/strong>: The tool should validate that converted objects can be parsed and compiled without errors in the target environment.<\/li>\n<li><strong>Referential Integrity Checks<\/strong>: The tool must ensure that foreign keys, unique constraints, and check constraints are preserved accurately.<\/li>\n<li><strong>Report Generation<\/strong>: The tool must provide a quantifiable risk report highlighting objects that require manual intervention.<\/li>\n<\/ol>\n<p>If the tool cannot generate a comprehensive assessment report identifying risks before execution, it is not suitable for enterprise-grade migrations. The report should quantify the number of objects converted successfully versus those flagged for review. This data allows architects to plan the necessary engineering hours for the manual rework phase. Without this transparency, the migration project becomes a black box with unpredictable outcomes.<\/p>\n<h2>The TCO Reality Check: Engineering Hours, Licensing, and Post-Migration Tuning<\/h2>\n<p>Total Cost of Ownership (TCO) in a migration project is rarely just the licensing fee of the tool or the database. The hidden costs lie in the engineering hours required to fix tool-generated conversion errors and the time spent tuning the new environment.<\/p>\n<p>A fair TCO model must include:<\/p>\n<ul>\n<li><strong>Tool Licensing<\/strong>: The cost of <strong>KDMS<\/strong> or the chosen migration utility.<\/li>\n<li><strong>Engineering Hours<\/strong>: The time DBAs and developers spend reviewing conversion reports, fixing syntax errors, and rewriting unsupported logic.<\/li>\n<li><strong>Post-Migration Tuning<\/strong>: The effort required to optimize the new database for performance.<\/li>\n<\/ul>\n<p><strong>KingbaseES V9<\/strong> introduces the <strong>KSH (Kingbase Session History)<\/strong> component to address the tuning cost. KSH provides detailed session history analysis, wait event tracking, and TOP SQL reporting. This capability reduces the time required to identify and resolve performance bottlenecks after migration. If a migration tool does not account for the need for post-migration tuning tools, the TCO estimate will be artificially low.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">Cost Component<\/th>\n<th style=\"text-align:left\">Traditional Manual Approach<\/th>\n<th style=\"text-align:left\">Automated Tool + Target DB Approach<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><strong>Conversion Effort<\/strong><\/td>\n<td style=\"text-align:left\">High (100% manual)<\/td>\n<td style=\"text-align:left\">Low to Medium (Tool + Re-work)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Error Correction<\/strong><\/td>\n<td style=\"text-align:left\">High (Developer time)<\/td>\n<td style=\"text-align:left\">Medium (Tool report + Target DB support)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Tuning Phase<\/strong><\/td>\n<td style=\"text-align:left\">High (New environment learning)<\/td>\n<td style=\"text-align:left\">Medium (KSH reports accelerate tuning)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Risk of Failure<\/strong><\/td>\n<td style=\"text-align:left\">High (Human error)<\/td>\n<td style=\"text-align:left\">Medium (Tool limitations)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The &quot;Cloud + Endpoint + Service&quot; architecture of <strong>KDMS<\/strong> aims to reduce the conversion effort. However, the engineering team must still validate the output. The TCO advantage only materializes if the target database (<strong>KingbaseES<\/strong>) supports the majority of the workload&#8217;s features, reducing the rework ratio.<\/p>\n<h2>The Two-Phase Cutover Strategy: Validating Data Consistency and Sovereignty<\/h2>\n<p>Migration strategy is as important as the tool selection. A robust approach minimizes downtime and aims to minimize data loss through real-time synchronization, subject to verification. The recommended strategy involves a two-phase cutover:<\/p>\n<ol>\n<li><strong>Phase 1<\/strong>: Oracle remains the primary system. <strong>KingbaseES<\/strong> acts as a backup system with real-time synchronization via <strong>FlySync<\/strong> or <strong>KFS<\/strong>.<\/li>\n<li><strong>Phase 2<\/strong>: <strong>KingbaseES<\/strong> becomes the primary system. Oracle serves as a backup for disaster recovery.<\/li>\n<\/ol>\n<p>This approach aims to minimize data loss during the transition. The real-time synchronization mechanism allows the organization to validate data consistency in a live environment before switching traffic.<\/p>\n<p>Regarding data sovereignty, <strong>KingbaseES<\/strong> supports user-group based access control policies and adaptation to multiple encryption devices for transparent encryption scenarios. These features help meet security standards, but the organization must verify that the deployment architecture complies with local regulations. <strong>KingbaseES<\/strong> and <strong>KDMS<\/strong> do not have verified local Malaysian offices, data centers, or engineering teams. The vendor does not automatically guarantee compliance with Malaysia&#8217;s PDPA or other local data residency mandates. The organization is responsible for verifying the physical location of the data and the encryption keys.<\/p>\n<p><strong>KingbaseES<\/strong> also supports deployment on domestic hardware platforms including Loongson, Phytium, Zhongbiao, and Galaxy. If your organization has specific hardware sovereignty requirements, this compatibility must be validated during the selection phase.<\/p>\n<h2>The PoC Disqualifier Matrix: Non-Negotiable Tests Before Procurement<\/h2>\n<p>Before signing a procurement contract, the migration tool and target database must pass a Proof of Concept (PoC) with specific, measurable criteria. The following matrix defines the disqualifiers that should eliminate a vendor from consideration.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">Test Criteria<\/th>\n<th style=\"text-align:left\">Weight<\/th>\n<th style=\"text-align:left\">Pass Condition<\/th>\n<th style=\"text-align:left\">Fail Condition (Disqualifier)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><strong>Data Integrity<\/strong><\/td>\n<td style=\"text-align:left\">40%<\/td>\n<td style=\"text-align:left\">Row counts and checksums match between source and target after sync.<\/td>\n<td style=\"text-align:left\">Data loss detected or checksum mismatch in critical tables.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Complex PL\/SQL Conversion<\/strong><\/td>\n<td style=\"text-align:left\">30%<\/td>\n<td style=\"text-align:left\">95%+ of complex packages convert with &lt;5% manual rework.<\/td>\n<td style=\"text-align:left\">&gt;10% of packages require manual rewrite or fail to compile.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Performance Baseline<\/strong><\/td>\n<td style=\"text-align:left\">20%<\/td>\n<td style=\"text-align:left\">Post-migration performance is within 10% of Oracle baseline (or as defined).<\/td>\n<td style=\"text-align:left\">Performance degradation &gt;20% without clear tuning path.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align:left\"><strong>Dependency Resolution<\/strong><\/td>\n<td style=\"text-align:left\">10%<\/td>\n<td style=\"text-align:left\">All object dependencies resolved; no broken references.<\/td>\n<td style=\"text-align:left\">Foreign keys or triggers broken; application cannot start.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If the tool fails any of these disqualifiers, the project risk is too high. The PoC must use a representative subset of your actual workload, including the most complex PL\/SQL packages and the most frequently accessed tables. Do not use a synthetic workload for validation.<\/p>\n<h2>FAQ<\/h2>\n<h3>What specific Oracle features are not supported by KingbaseES and will require manual refactoring?<\/h3>\n<p>While <strong>KingbaseES V009R002C012<\/strong> and <strong>V009R002C013<\/strong> support a wide range of Oracle features (system views, LISTAGG, NEW keyword, DETERMINISTIC headers, and large packages), unsupported features exist. You must verify your specific schema against the feature matrix. Any feature not listed in the compatibility matrix or not explicitly supported in the target version will require manual refactoring.<\/p>\n<h3>How is the conversion accuracy of PL\/SQL measured, and what is the expected rework percentage for complex packages?<\/h3>\n<p>Accuracy is measured by the ratio of successfully converted code to the total code volume. For enterprise-grade packages, a rework percentage of less than 5% is a common target for a successful automated migration. The <strong>KDMS<\/strong> tool should generate a report quantifying this ratio. If the tool cannot provide this metric, the accuracy claim is unverifiable.<\/p>\n<h3>What are the disqualifiers for a migration tool based on data integrity and performance benchmarks?<\/h3>\n<p>Disqualifiers include data loss during synchronization, failure to resolve object dependencies (broken foreign keys or triggers), and performance degradation exceeding 20% without a clear tuning path. A tool that cannot generate a pre-migration risk assessment report is also a disqualifier for complex workloads.<\/p>\n<h3>How does the KDMS tool handle schema dependency resolution without breaking referential integrity?<\/h3>\n<p><strong>KDMS<\/strong> analyzes the dependency graph of the Oracle schema before conversion. It generates a migration assessment report that identifies potential conflicts and ensures that object dependencies are preserved. The tool should validate that converted objects can be compiled and executed in the target environment without breaking referential integrity.<\/p>\n<h3>What evidence is required to validate the tool&#8217;s performance in a Proof of Concept (PoC) before procurement?<\/h3>\n<p>The PoC must demonstrate successful conversion of a representative workload subset, including complex PL\/SQL packages. Evidence required includes a detailed assessment report, data integrity checksums matching source and target, and performance benchmarks showing acceptable latency and throughput. The <strong>KSH<\/strong> component should be used to validate performance tuning capabilities post-migration.<\/p>\n<hr \/>\n<p><strong>\ud83d\udca1 More Resources<\/strong><\/p>\n<p>If you would like to dive deeper into KingbaseES and its application practices across various industries, we have compiled the following official resources to help you get started quickly and develop and operate with efficiency:<\/p>\n<ul>\n<li><a href=\"https:\/\/bbs.kingbase.com.cn\/\">Kingbase Community<\/a>: A one-stop interactive platform for technical exchanges, Q&amp;A, and experience sharing\u2014join forces with fellow DBAs and developers.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/Solution-Oracle.html\">Kingbase Solutions<\/a>: One-stop full-stack database migration and cloud-native solutions, supporting smooth migration of multi-source heterogeneous data, ensuring high availability, real-time integration, and sustained high performance.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/Customers.html\">Kingbase Case Studies<\/a>: Real-world user scenarios and implementation outcomes, showcasing KingbaseES&#8217;s outstanding capabilities in high availability, high performance, and IT adaptation.<\/li>\n<li><a href=\"https:\/\/docs.kingbase.com.cn\/en\">Kingbase Documentation<\/a>: Authoritative and comprehensive product manuals and technical guides, covering the entire lifecycle from installation and deployment to development, programming, and operations management.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/Download.html\">Free Download<\/a>: Get the latest installation packages, drivers, tools, and patches, supporting multiple platforms and domestic chip architectures.<\/li>\n<li><a href=\"https:\/\/www.kingbaseglobal.com\/blog\/\">Digital Construction Encyclopedia<\/a>: Covers digital strategy planning, data integration, metrics management, database visualization applications, and more to empower enterprise digital transformation.<\/li>\n<\/ul>\n<p><strong>Open Source Resources:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/hgsandy\/Kingbase-docs\">GitHub &#8211; Kingbase-docs<\/a>: Kingbase documentation open-source repository\u2014Stars and contributions are welcome.<\/li>\n<li><a href=\"https:\/\/gitee.com\/hgsandy\/kingbase-docs\">Gitee &#8211; Kingbase-docs<\/a>: Domestic mirror repository for Kingbase documentation for faster access.<\/li>\n<\/ul>\n<p>Welcome to explore the resources above and begin your Kingbase journey!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Automated Oracle Schema Migration: A Disqualifier-First Selection Guide for Enterprise Architects Define Workload and Stakeholder Requirements Before Evaluation Before evaluating any automated migration tool or target database, enterprise architects must&#8230;<\/p>\n","protected":false},"author":111,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"meta_description":"","_kingbase_seo_description":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1283","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/posts\/1283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/users\/111"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/comments?post=1283"}],"version-history":[{"count":0,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/posts\/1283\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/media?parent=1283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/categories?post=1283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kingbaseglobal.com\/blog\/wp-json\/wp\/v2\/tags?post=1283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}