{"id":25975,"date":"2025-10-06T10:00:53","date_gmt":"2025-10-06T10:00:53","guid":{"rendered":"https:\/\/www.datafusing.com\/?p=25975"},"modified":"2026-03-30T13:09:49","modified_gmt":"2026-03-30T13:09:49","slug":"oracle-fusion-data-model-table-structure-overview","status":"publish","type":"post","link":"https:\/\/www.datafusing.com\/oracle-fusion-data-model-table-structure-overview\/","title":{"rendered":"Oracle Fusion Data Model &amp; Table Structure Overview\u00a0"},"content":{"rendered":"\n<p>Oracle Fusion applications run on top of an Oracle database (RDBMS). Like any database, it contains tables, views, primary keys, and indexes. The data model defines how business entities are organized and related. Tables organize data in rows and columns, utilizing keys for unique identification and establishing relationships.&nbsp;<\/p>\n\n\n\n<p>As Oracle consultants, we often need to write SQL queries. Only <strong>SELECT<\/strong> statements are allowed; <strong>INSERT, UPDATE, and DELETE<\/strong> are restricted. Any data changes must be done through APIs, file uploads, or front-end interfaces. To retrieve data, developers must understand the table structures.&nbsp;<\/p>\n\n\n\n<p>In this blog post, we will cover the core concepts of the Oracle Fusion database that every consultant should be familiar with. We will focus on Fusion-specific table features such as <strong>Flexfields, multi-language tables, and date-tracked HCM tables<\/strong>. <\/p>\n\n\n\n<p>We will also share tips and best practices for working effectively with Oracle Fusion data models.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Core Concepts &amp; Components of Oracle Fusion Data Model&nbsp;<\/h2>\n\n\n\n<p><strong>Table<\/strong>: The fundamental unit of data storage in Oracle Financials Cloud, where information is kept in rows and columns.&nbsp;<\/p>\n\n\n\n<p><strong>Example:<\/strong> POZ_SUPPLIERS stores supplier-level details, such as the supplier number in the SEGMENT1 column.&nbsp;<\/p>\n\n\n\n<p><strong>View<\/strong>: A logical representation of one or more tables. A view is essentially a stored query that pulls data from its underlying tables.&nbsp;<\/p>\n\n\n\n<p><strong>Example: <\/strong>POZ_SUPPLIERS_V is a view based on POZ_SUPPLIERS and other related tables. It contains additional columns not found in the base table, for instance, the supplier name is available in the view but not in POZ_SUPPLIERS.&nbsp;<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0b95e5\" class=\"has-inline-color\"><strong>Note:<\/strong> If you come from an Oracle E-Business Suite (EBS) background, you\u2019ll find this familiar; many table names in Oracle Fusion are the same or very similar to those in EBS. Check out our blog on<\/mark>\u202f<a href=\"https:\/\/www.datafusing.com\/from-oracle-e-business-suite-to-oracle-fusion-5-key-differences-every-oracle-developer-should-know\/\">Oracle E-Business Suite to Oracle Fusion differences.<\/a>&nbsp;<\/p>\n\n\n\n<p><strong>Primary Key<\/strong>: A primary key uniquely identifies each record in a table. It is unique and non-null, ensuring the identity of each row. Primary keys generally have indexes to facilitate fast retrieval.&nbsp;<\/p>\n\n\n\n<p><strong>Foreign Key<\/strong>: A foreign key is a column or set of columns in one table that references the primary key of another table, establishing relationships and referential integrity. In Oracle Fusion, foreign keys are often managed at the application level rather than being physically enforced in the database schema.&nbsp;<\/p>\n\n\n\n<p><strong>Indexes<\/strong>: Indexes enhance query performance by facilitating rapid lookups on columns, including those designated as primary keys. Oracle Fusion tables come with Oracle-provided indexes. However, users do not have direct access to create custom.&nbsp;&nbsp;<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0b95e5\" class=\"has-inline-color\"><strong>Note: <\/strong>Unlike other database structures, developers do not have access to tune the Oracle database; we can not create custom indexes and will have to adapt our SQLs to utilize Oracle-provided indexes.&nbsp;&nbsp;<\/mark><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Also Read: <\/strong><a href=\"https:\/\/www.datafusing.com\/oracle-fusion-reporting-challenges\/\">Oracle Fusion Reporting Challenges Explained<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Major Modules &amp; Key Tables&nbsp;<\/h2>\n\n\n\n<p>Oracle Fusion utilizes schema modularization to organize database objects into separate pillars, including Human Capital Management (HCM), Supply Chain Management (SCM), Financials, and Common\/CX. Each pillar focuses on a specific business domain.&nbsp;<\/p>\n\n\n\n<p>Within each pillar, tables are further grouped into modules. Oracle Fusion Cloud has over 290 modules, including:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Pillar<\/strong>&nbsp;<\/td><td><strong>Key Tables \/ Views<\/strong>&nbsp;<\/td><td><strong>Typical Entities Covered<\/strong>&nbsp;<\/td><td><strong>Common Use in Reporting \/ SQL Extraction<\/strong>&nbsp;<\/td><\/tr><tr><td><strong>HCM (Human Capital Management)<\/strong>&nbsp;<\/td><td>PER_ALL_PEOPLE_F,&nbsp;&nbsp;PER_ALL_ASSIGNMENTS_F&nbsp;HR_ALL_ORGANIZATION_UNITS_F&nbsp;PER_USERS&nbsp;<\/td><td>Employees,&nbsp;Assignments,&nbsp;Organization Structure,&nbsp;&nbsp;Users&nbsp;<\/td><td>For headcount reports, org-charts, HR dashboards&nbsp;<\/td><\/tr><tr><td><strong>SCM (Supply Chain Management)<\/strong>&nbsp;<\/td><td>POZ_SUPPLIERS&nbsp;POZ_SUPPLIER_SITES_ALL_M&nbsp;PO_HEADERS_ALL&nbsp;PO_LINES_ALL&nbsp;&nbsp;<\/td><td>Suppliers&nbsp;Supplier site&nbsp;Purchase orders&nbsp;PO Lines&nbsp;<\/td><td>Procurement analytics&nbsp;<\/td><\/tr><tr><td><strong>Financials<\/strong>&nbsp;<\/td><td>GL_JE_HEADERS&nbsp;GL_JE_LINES&nbsp;RA_CUSTOMER_TRX_ALL&nbsp;AP_INVOICES_ALL&nbsp;&nbsp;<\/td><td>General Ledger entries, Payables Invoices, Receivables invoices&nbsp;<\/td><td>Financial reporting, audit, cash flow, expense analysis&nbsp;<\/td><\/tr><tr><td><strong>Common Features<\/strong>&nbsp;<\/td><td>FND_LOOKUP_VALUES&nbsp;FND_FLEX_VALUES&nbsp;FND_CURRENCIES_VL&nbsp;FND_TERRITORIES_VL&nbsp;&nbsp;<\/td><td>Lookup values, Value sets, Currencies, Territories&nbsp;<\/td><td>Reference data for other modules&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How to Explore &amp; Use the Data Model?<\/h2>\n\n\n\n<p>Exploring and effectively utilizing the Oracle Fusion data model is essential for accurate reporting and seamless data extraction. The official Oracle documentation provides comprehensive guides for each module, such as Human Capital Management (HCM), Financials, and Common Features, which serve as a foundational reference for understanding relevant tables and views. The complete documentation for each module is available in the links below:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/25c\/oedma\/index.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Tables and Views for Common Features<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/human-resources\/oedmh\/hcm-tables-and-views.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Table and views for HCM<\/a>&nbsp;&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/financials\/25c\/oedmf\/index.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Tables and views for Financials<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Unlike traditional databases, Oracle Fusion does not allow direct connections using TNS details or standard database tools. <\/p>\n\n\n\n<p>To access the data model, you need specific roles such as the BI Publisher Data Model Developer role, which grants permission to read tables and views. Oracle\u2019s standard approach for writing SQL is through BI data models, where you first create a data model and then build a report. <\/p>\n\n\n\n<p>Here is a <a href=\"https:\/\/www.datafusing.com\/how-to-create-a-bi-publisher-report-in-oracle-fusion\/\" target=\"_blank\" rel=\"noreferrer noopener\">step-by-step guide to create your first report<\/a>. Alternatively, you can <a href=\"https:\/\/www.datafusing.com\/running-your-first-sql-with-cloudsql\/\">use the CloudSQL tool to query the Oracle Fusion database<\/a> directly, just like you would with any other database.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s have a look at the metadata tables that Oracle Fusion provides.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Metadata Table<\/strong>&nbsp;<\/td><td><strong>Description<\/strong>&nbsp;<\/td><\/tr><tr><td><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/24d\/oedma\/fndtables-4153.html#Details\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">FND_TABLES<\/a>&nbsp;<\/td><td>Lists all tables that are registered with Oracle Fusion&nbsp;<\/td><\/tr><tr><td><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/24d\/oedma\/fndviews-24034.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">FND_VIEWS<\/a>&nbsp;<\/td><td>Lists all views that are registered with Oracle Fusion&nbsp;<\/td><\/tr><tr><td><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/24d\/oedma\/fndcolumns-14480.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">FND_COLUMNS<\/a>&nbsp;<\/td><td>Lists all columns in the registered tables&nbsp;<\/td><\/tr><tr><td><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/24d\/oedma\/fndprimarykeys-14481.html#fndprimarykeys-14481\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">FND_PRIMARY_KEYS<\/a>&nbsp;<\/td><td>Lists all primary keys in the registered tables&nbsp;<\/td><\/tr><tr><td><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/24d\/oedma\/fndindexes-4152.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">FND_INDEXES<\/a>&nbsp;<\/td><td>Lists all indexes registered with Oracle Fusion.&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>As an Oracle consultant, much of your SQL work involves finding the right tables and understanding their structure. <a href=\"https:\/\/www.datafusing.com\/\">CloudSQL<\/a> makes this easier in three ways:&nbsp;<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Code autocomplete suggests table and column names as you type, saving you the effort of searching through the database or Oracle documentation.&nbsp;<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"903\" height=\"429\" src=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Data-Fusing-Cloud-SQL-desktop.webp\" alt=\"Datafusing CloudSQL Desktop \" class=\"wp-image-26045\" srcset=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Data-Fusing-Cloud-SQL-desktop.webp 903w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Data-Fusing-Cloud-SQL-desktop-300x143.webp 300w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Data-Fusing-Cloud-SQL-desktop-768x365.webp 768w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Data-Fusing-Cloud-SQL-desktop-710x337.webp 710w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>You can right-click a table name and select \u201cDescribe\u201d to instantly view its structure.&nbsp;<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"903\" height=\"327\" src=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Click-on-Describe-Table.webp\" alt=\"Click on Describe Table \" class=\"wp-image-26046\" srcset=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Click-on-Describe-Table.webp 903w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Click-on-Describe-Table-300x109.webp 300w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Click-on-Describe-Table-768x278.webp 768w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Click-on-Describe-Table-710x257.webp 710w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<p>3. The database browser on the left pane lets you expand and explore each table\u2019s structure in detail.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"903\" height=\"360\" src=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Table-Structure-Options.webp\" alt=\"Table Structure Options\" class=\"wp-image-26048\" srcset=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Table-Structure-Options.webp 903w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Table-Structure-Options-300x120.webp 300w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Table-Structure-Options-768x306.webp 768w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Table-Structure-Options-710x283.webp 710w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Best Practices for Working with Oracle Fusion Data Model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Choose Between Tables and Views Wisely: <\/strong>Views are convenient for quick, ad-hoc queries, but may include unnecessary joins that impact performance. For performance-critical SQL, use base tables.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Leverage Table Documentation: <\/strong>Use names, column definitions, and indexes to understand joins and keys. If documentation is not available, review existing SQLs from data models, views, or Oracle forums, but always thoroughly test them for your specific use case.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Stay Updated with Releases: <\/strong>Oracle updates the application every quarter and refreshes the database documentation. While core structures rarely change, new tables and columns are often added. Always check the documentation for your specific version before writing SQL.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Avoid SELECT *: <\/strong>Always specify only the columns you need to reduce data load and improve efficiency.&nbsp;<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>You Should Read: <\/strong><a href=\"https:\/\/www.datafusing.com\/debug-oracle-bi-publisher-error\/\">Top Methods to Debug Oracle BI Publisher Error Quickly&nbsp;<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Schema Design Patterns &amp; Relationships&nbsp;<\/h2>\n\n\n\n<p>Relationships are expressed via foreign keys, lookup tables, and reference tables. However, foreign keys may not always be physically enforced in the schema, as integrity is application-managed.&nbsp;Here are some naming conventions that can save you time when writing SQL. These aren\u2019t strict rules, but helpful tips to keep in mind:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Table names are usually plural (e.g., lines instead of line).&nbsp;<\/li>\n\n\n\n<li>Table names often begin with the application or schema name, although there are exceptions due to historical reasons.&nbsp;<\/li>\n\n\n\n<li>Foreign key columns typically share the name of the primary key in the related table.&nbsp;<\/li>\n\n\n\n<li>View names usually match the table name but end with _V.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Here are some features in Oracle Fusion, along with the underlying table structure.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Descriptive Flexfields (DFFs)&nbsp;<\/h3>\n\n\n\n<p>A <a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/25c\/facia\/overview-of-descriptive-flexfields.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Descriptive Flexfield (DFF<\/a>) allows you to capture additional, user-defined information in Oracle Fusion without customizing the core product. Most tables in Oracle Fusion include ATTRIBUTE columns (e.g., ATTRIBUTE1, ATTRIBUTE2, etc.), which can be configured by clients to store data specific to their business needs.&nbsp;<\/p>\n\n\n\n<p>For example, a client might want to store a custom supplier type for each supplier record. They could configure the ATTRIBUTE1 column to hold this value. Functional consultants usually do this setup during the implementation phase.&nbsp;<\/p>\n\n\n\n<p>DFFs are also <a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/25c\/facia\/manage-contexts.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">context-sensitive<\/a>, meaning the same column can store different values depending on the scenario. For instance, ATTRIBUTE1 might store a payroll number for a UK employee, but a tax code for an Australian employee.&nbsp;<\/p>\n\n\n\n<p>When writing SQL queries, it\u2019s essential to check the DFF configuration to understand what each ATTRIBUTEx column stores. Also, review the value set attached to a DFF field, since this defines how codes are translated into display values.&nbsp;<\/p>\n\n\n\n<p><strong>Tip<\/strong>: To quickly access the DFF configuration from a page, use the <strong>Highlight Flexfields<\/strong> option from the top menu. This will highlight the DFF columns in use.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"453\" src=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Highlight-Flexfields.webp\" alt=\"Highlight Flexfields\" class=\"wp-image-26049\" srcset=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Highlight-Flexfields.webp 903w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Highlight-Flexfields-300x150.webp 300w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Highlight-Flexfields-768x385.webp 768w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/Highlight-Flexfields-710x356.webp 710w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<p>If descriptive flexfields are available and configured on the screen, you will see one or more&nbsp;<strong>wrench icons<\/strong> displayed.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"222\" src=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/wrench-icons.webp\" alt=\"wrench icons\" class=\"wp-image-26050\" srcset=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/wrench-icons.webp 903w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/wrench-icons-300x74.webp 300w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/wrench-icons-768x189.webp 768w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/wrench-icons-710x175.webp 710w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<p>Click on the Wrench icons to navigate to DFF configuration&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"219\" src=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/FlexMode-Setup.webp\" alt=\"FlexMode Setup\" class=\"wp-image-26051\" srcset=\"https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/FlexMode-Setup.webp 903w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/FlexMode-Setup-300x73.webp 300w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/FlexMode-Setup-768x186.webp 768w, https:\/\/www.datafusing.com\/wp-content\/uploads\/2025\/09\/FlexMode-Setup-710x172.webp 710w\" sizes=\"(max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Must Read: <\/strong><a href=\"https:\/\/www.datafusing.com\/oracle-bi-publisher-performance-tuning\/\">Guide to Oracle BI Publisher Performance Tuning for Fusion Applications&nbsp;<\/a><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Extensible Flexfields (EFFs)&nbsp;<\/h3>\n\n\n\n<p>An <a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/applications-common\/25c\/oaext\/overview-of-extensible-flexfields.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Extensible Flexfield<\/a> (EFF) in Oracle Fusion is like an advanced version of a DFF; it stores additional user-defined attributes, but instead of using a few ATTRIBUTEx columns in the base table, it creates separate extension tables, making it more scalable and better for handling large or complex sets of custom fields. <\/p>\n\n\n\n<p>If you are from an Oracle eBusiness Suite background, this is a new concept to you. Think of it as a table with only ATTRIBUTE columns. Also, multiple records can exist in an extensible flexfield table for a single record in the base table.&nbsp;<\/p>\n\n\n\n<p>For example,&nbsp; PER_ASSIGNMENT_EXTRA_INFO holds additional assignment details linked to PER_ALL_ASSIGNMENTS_F.&nbsp;<\/p>\n\n\n\n<p>While working with the data model, it is essential to understand the names of the extensible tables for a base table, the contexts configured, and the segments. Here is an SQL to fetch the Extensible flexfield values for the above example.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">SELECT<\/mark>\n     asg.assignment_number,\n     asg.assignment_name,\n     eff.AEI_ATTRIBUTE1,\n     eff.AEI_ATTRIBUTE2,\n     eff.AEI_ATTRIBUTE3,\n     eff.AEI_ATTRIBUTE4\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">FROM\n<\/mark>     per_all_assignments_f asg\n     <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">JOIN<\/mark> per_assignment_extra_info_m eff <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">ON<\/mark> asg.assignment_id = eff.assignment_id\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">WHERE<\/mark>\n     <mark style=\"background-color:rgba(0, 0, 0, 0);color:#1198e6\" class=\"has-inline-color\">sysdate<\/mark> <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">BETWEEN<\/mark> asg.effective_start_date <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">AND<\/mark> asg.effective_end_date\n     <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">AND<\/mark> eff.information_type != <mark style=\"background-color:rgba(0, 0, 0, 0);color:#11c267\" class=\"has-inline-color\">'ORA_WGEInformation'<\/mark><\/code><\/pre>\n\n\n\n<div style=\"text-align:right;\">\n  <a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.datafusing.com\/datafusing-cloudsql\/register-for-free-cloudsql-desktop-trial\/\" style=\"background-color:#2C50A6; color:#fff; padding:4px 10px; font-size:12px; border-radius:5px; text-decoration:none; display:inline-block;\">\n    Run SQL Now\n  <\/a>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Lookup Tables&nbsp;<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.oracle.com\/en\/cloud\/saas\/human-resources\/faucf\/overview-of-lookups.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>A lookup type<\/strong><\/a> is a predefined list of valid values that Oracle Fusion uses to control data entry and maintain consistent information. Many tables store a <strong>lookup code<\/strong>, and you need to join it with the lookup configuration to get the user-friendly <strong>meaning<\/strong> or <strong>description<\/strong>. These values can be queried from the FND_LOOKUP_VALUES view.&nbsp;<\/p>\n\n\n\n<p>For example, the PER_PEOPLE_LEGISLATIVE_F table has a column called MARITAL_STATUS, which stores codes like BE_LIV_TOG or D. In reports, these should be displayed as \u201cLiving Together\u201d or \u201cDivorced.\u201d To do this, you query the lookup values and join them with your table.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">SELECT<\/mark>\n     lookup_code,\n     meaning,\n     description\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">FROM<\/mark>\n     fnd_lookup_values\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">WHERE<\/mark>\n     lookup_type = <mark style=\"background-color:rgba(0, 0, 0, 0);color:#11c267\" class=\"has-inline-color\">'MARITAL_STATUS'<\/mark>\n     <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">AND LANGUAGE<\/mark> = <mark style=\"background-color:rgba(0, 0, 0, 0);color:#11c267\" class=\"has-inline-color\">'US'<\/mark>\n     <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">AND<\/mark> lookup_code = <mark style=\"background-color:rgba(0, 0, 0, 0);color:#11c267\" class=\"has-inline-color\">'BE_LIV_TOG'<\/mark><\/code><\/pre>\n\n\n\n<div style=\"text-align:right;\">\n  <a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.datafusing.com\/datafusing-cloudsql\/register-for-free-cloudsql-desktop-trial\/\" style=\"background-color:#2C50A6; color:#fff; padding:4px 10px; font-size:12px; border-radius:5px; text-decoration:none; display:inline-block;\">\n    Run SQL Now\n  <\/a>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Multi-Language Tables&nbsp;<\/h3>\n\n\n\n<p>Oracle Fusion supports users from different countries, so labels, descriptions, and names often need to be stored in multiple languages and&nbsp;shown in the user\u2019s preferred language. To handle this, Oracle uses two linked tables:&nbsp;<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>A <strong>base table (ending with _B)<\/strong> that stores codes, IDs, and other non-translatable data.&nbsp;<\/li>\n\n\n\n<li>A <strong>translation table (ending with _TL)<\/strong> that stores the translatable text in different languages, along with a LANGUAGE column.&nbsp;<\/li>\n<\/ol>\n\n\n\n<p>An example of a query involving a base table and a translation table is below. This SQL will fetch currency names in Arabic.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">SELECT<\/mark>\n     curr.currency_code,\n     curr_tl.name currency_arabic_name\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">FROM<\/mark>\n     fnd_currencies_b curr,\n     fnd_currencies_tl curr_tl\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">WHERE<\/mark>\n     curr.currency_code = curr_tl.currency_code\n     AND curr_tl.language = <mark style=\"background-color:rgba(0, 0, 0, 0);color:#11c267\" class=\"has-inline-color\">'AR'<\/mark><\/code><\/pre>\n\n\n\n<div style=\"text-align:right;\">\n  <a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.datafusing.com\/datafusing-cloudsql\/register-for-free-cloudsql-desktop-trial\/\" style=\"background-color:#2C50A6; color:#fff; padding:4px 10px; font-size:12px; border-radius:5px; text-decoration:none; display:inline-block;\">\n    Run SQL Now\n  <\/a>\n<\/div>\n\n\n\n<p>To make querying easy for <span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">developers, we can use the _<strong>VL&nbsp;<\/strong><\/span>views<strong>. <\/strong>These are&nbsp; Views joining _B and _TL, with filters based on the session language (using nls(\u2018LANG\u2019)). So this will return one record based on the current language associated with the user.&nbsp;<\/p>\n\n\n\n<p>Best Practice Querying Multi-Language Tables<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use <\/strong><span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\"><strong>VL Views Whenever Possible:&nbsp;<\/strong>These views are designe<\/span>d to automatically return the correct language-specific data, saving you from having to manually manage language joins.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Be Explicit With_TL Tables: <\/strong>If you query a _TL (translation) table directly, always include a condition on the LANGUAGE column to ensure you\u2019re retrieving the correct language version of the data.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\"><strong>Handle Single-Language Environments Carefully:&nbsp;<\/strong>In systems that haven\u2019t implemented multiple languages, you can simplify your SQL by hardcoding LANGUAGE = &#8216;US&#8217; for quick, ad hoc queries.<\/span>&nbsp;<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>You Can&#8217;t Ignore: <\/strong><a href=\"https:\/\/www.datafusing.com\/reporting-tools-in-oracle-fusion\/\">Comparison &amp; Guide of Reporting Tools in Oracle Fusion<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Date-Tracked Human Resource Tables&nbsp;<\/h2>\n\n\n\n<p>Date-tracked tables are primarily used in HCM (Human Capital Management). They are designed to maintain a history of changes over time. This means queries can return not only the current values (like an employee\u2019s job title, role, or assignment) but also the full historical record of how those values have changed.&nbsp;<\/p>\n\n\n\n<p>Date-tracked tables in Oracle Fusion typically have names ending with _F. Each of these tables contains two mandatory columns: EFFECTIVE_START_DATE and EFFECTIVE_END_DATE. For open-ended records, the EFFECTIVE_END_DATE is set to 31-DEC-4712, which represents &#8220;end of time.&#8221;. <\/p>\n\n\n\n<p>When querying for current records, always include a condition that compares the effective start and end dates with the current date to ensure you return only active data.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">SELECT<\/mark>\n     papf.person_number,\n     papf.effective_start_date,\n     papf.start_date,\n     papf.primary_email_id\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">FROM<\/mark>\n     per_all_people_f papf\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">WHERE<\/mark>\n     <mark style=\"background-color:rgba(0, 0, 0, 0);color:#1198e6\" class=\"has-inline-color\">sysdate<\/mark> <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">BETWEEN<\/mark> papf.effective_start_date <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f682c9\" class=\"has-inline-color\">AND<\/mark> papf.effective_end_date<\/code><\/pre>\n\n\n\n<div style=\"text-align:right;\">\n  <a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.datafusing.com\/datafusing-cloudsql\/register-for-free-cloudsql-desktop-trial\/\" style=\"background-color:#2C50A6; color:#fff; padding:4px 10px; font-size:12px; border-radius:5px; text-decoration:none; display:inline-block;\">\n    Run SQL Now\n  <\/a>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Challenges with the Data Model &amp; Tips&nbsp;<\/h2>\n\n\n\n<p>Working with Oracle Fusion\u2019s data model can be tricky. Here are the main challenges and how to handle them:&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Schema Complexity&nbsp;<\/h3>\n\n\n\n<p>Oracle Fusion contains a huge number of tables, and figuring out which ones to use, and how they are related can feel overwhelming.&nbsp;<\/p>\n\n\n\n<p><strong>Solution:<\/strong>&nbsp;Instead of starting from scratch, begin with existing SQLs and adapt them to your specific needs. You can reverse-engineer the joins and logic from SQLs found in views, view objects, standard data models, custom data models, or Oracle documentation. This approach saves time and helps you learn the correct relationships between tables.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Performance&nbsp;<\/h3>\n\n\n\n<p>Some Oracle Fusion tables, such as invoices or journals, can be huge. Running queries without filters or using inefficient joins can lead to significant performance issues.&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>Solution:<\/strong>&nbsp;Always apply filter conditions when querying large tables to limit the data retrieved. Use indexed columns for joins whenever possible to improve performance. If a view brings in more data than you need, simplify the SQL by removing unnecessary joins and working directly with the required tables.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Security &amp; Access&nbsp;<\/h3>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<p>Access to Oracle Fusion tables is controlled by <strong>roles<\/strong> and <strong>data security profiles<\/strong>. This means that querying different versions of a table can return different results. For example:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PO_HEADERS_ALL<\/strong> \u2192 Base table that contains all purchase order data.&nbsp;<\/li>\n\n\n\n<li><strong>PO_HEADERS<\/strong> \u2192 A secured synonym of the base table that applies security rules, such as restricting results to specific business units (e.g., BUSINESS_UNIT IN (4,5,6)).&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>If you use the wrong table, you may either miss data due to filters or accidentally bypass security rules.&nbsp;<\/p>\n\n\n\n<p><strong>Solution:<\/strong>&nbsp;For <strong>user-level queries and reports<\/strong>, use the <strong>secured synonyms<\/strong> (like PO_HEADERS) so that fine-grained access control and policy functions are automatically applied. For <strong>system administrator queries<\/strong>, where ignoring security rules is acceptable, use the <strong>base tables<\/strong> (like PO_HEADERS_ALL). This ensures you balance both security compliance and administrative flexibility depending on your use case.&nbsp;<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>You May Like: <\/strong><a href=\"https:\/\/www.datafusing.com\/oracle-fusion-custom-report-builder\/\">Oracle Fusion Custom Report Builder and CloudSQL Advantages<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Tips for Effective Use of the Data Model in Reporting<\/h2>\n\n\n\n<p>When writing a query, especially a large or complex one, it\u2019s best to follow a structured approach.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Start with Documentation: <\/strong>Review the module documentation to identify the tables relevant to your reporting domain. This helps narrow your focus before you begin.&nbsp;<\/li>\n\n\n\n<li><strong>Leverage Existing SQLs: <\/strong>Look at previously written SQLs, such as those in the CloudSQL Online public library. These examples show you common joins and relationships between tables.&nbsp;<\/li>\n\n\n\n<li><strong>Test with Samples: <\/strong>Run small sampling queries to explore the data and validate assumptions before building complete reports.&nbsp;<\/li>\n\n\n\n<li><strong>Structure with WITH Clauses: <\/strong>Break large queries into manageable pieces by using common table expressions (WITH clauses). This makes your SQL easier to read and maintain&nbsp;<\/li>\n\n\n\n<li><strong>Use Aliases and Prefixes: <\/strong>Always apply table aliases and prefixes to avoid ambiguity when joining multiple tables.&nbsp;<\/li>\n\n\n\n<li><strong>Develop in an SQL Editor: <\/strong>Tools like <strong>CloudSQL<\/strong> make development faster by letting you write and test queries with a single click.&nbsp;<\/li>\n\n\n\n<li><strong>Simplify with Views: <\/strong>Where permitted, create named or custom views to simplify queries for end users and reduce repetition in future reports.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Summary Table: Quick Reference of Key Tables by Module&nbsp;<\/h2>\n\n\n\n<p>When you start working with Oracle Fusion, here are some tables that you should know.&nbsp; You can keep this cheatsheet handy for quick reference.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Module<\/strong>&nbsp;<\/td><td><strong>Table\/View<\/strong>&nbsp;<\/td><td><strong>Description \/ Typical Use<\/strong>&nbsp;<\/td><\/tr><tr><td>Common&nbsp;<\/td><td>FND_LOOKUP_VALUES&nbsp;<\/td><td>Lookup values&nbsp;<\/td><\/tr><tr><td>Common&nbsp;<\/td><td>FND_FLEX_VALUES&nbsp;<\/td><td>Value set values&nbsp;<\/td><\/tr><tr><td>Common&nbsp;<\/td><td>FND_LANGUAGES&nbsp;<\/td><td>Languages (gfor multi language)&nbsp;<\/td><\/tr><tr><td>Common&nbsp;<\/td><td>FND_CURRENCIES_VL&nbsp;<\/td><td>currencies&nbsp;<\/td><\/tr><tr><td>Common&nbsp;<\/td><td>FND_TERRITORIES_VL&nbsp;<\/td><td>Countries and other geographical area&nbsp;<\/td><\/tr><tr><td>HCM&nbsp;<\/td><td>PER_ALL_PEOPLE_F&nbsp;<\/td><td>Person basic record&nbsp;<\/td><\/tr><tr><td>HCM&nbsp;<\/td><td>PER_ALL_ASSIGNMENTS_F <\/td><td>Employment record&nbsp;<\/td><\/tr><tr><td>HCM&nbsp;<\/td><td>HR_ALL_ORGANZIATION_UNITS_F&nbsp;<\/td><td>Organizations such as business units, departments, divisions etc)&nbsp;<\/td><\/tr><tr><td>HCM&nbsp;<\/td><td>PER_LEGAL_EMPLOYERS&nbsp;<\/td><td>All legal employers&nbsp;<\/td><\/tr><tr><td>HCM&nbsp;<\/td><td>PER_USERS&nbsp;<\/td><td>All users&nbsp;<\/td><\/tr><tr><td>Payrolls&nbsp;<\/td><td>PAY_ALL_PAYROLLS_F&nbsp;<\/td><td>Payroll definition&nbsp;<\/td><\/tr><tr><td>Payrolls&nbsp;<\/td><td>CMP_SALARY&nbsp;<\/td><td>Salary&nbsp;<\/td><\/tr><tr><td>Payrolls&nbsp;<\/td><td>PAY_ELEMENT_TYPES_F&nbsp;<\/td><td>Element definitions&nbsp;<\/td><\/tr><tr><td>General Ledger&nbsp;<\/td><td>GL_JE_HEADERS&nbsp;<\/td><td>Journal Headers&nbsp;<\/td><\/tr><tr><td>General Ledger&nbsp;<\/td><td>GL_JE_LINES&nbsp;<\/td><td>Journal Lines&nbsp;<\/td><\/tr><tr><td>General Ledger&nbsp;<\/td><td>GL_BALANCES&nbsp;<\/td><td>General Ledge Balance&nbsp;<\/td><\/tr><tr><td>TCA (trading community architecture)&nbsp;<\/td><td>HZ_PARTIES&nbsp;<\/td><td>base table for all parties like suppliers, customers and banks&nbsp;<\/td><\/tr><tr><td>TCA (trading community architecture)&nbsp;<\/td><td>HZ_CUST_ACCOUNTS&nbsp;<\/td><td>customer account&nbsp;<\/td><\/tr><tr><td>TCA (trading community architecture)&nbsp;<\/td><td>HZ_CUST_ACCT_SITES_ALL&nbsp;<\/td><td>Customer account sites&nbsp;<\/td><\/tr><tr><td>Account Receivables&nbsp;<\/td><td>RA_CUSTOMER_TRX_ALL&nbsp;<\/td><td>Customer Transaction&nbsp;<\/td><\/tr><tr><td>Account Receivables&nbsp;<\/td><td>RA_CUSTOMER_TRX_LINES_ALL&nbsp;<\/td><td>Trx lines&nbsp;<\/td><\/tr><tr><td>Account Payables&nbsp;<\/td><td>AP_INVOICES_LL&nbsp;<\/td><td>Supplier invoices&nbsp;<\/td><\/tr><tr><td>Account Payables&nbsp;<\/td><td>AP_INVOICE_LINES_ALL&nbsp;<\/td><td>Supplier invoice lines&nbsp;<\/td><\/tr><tr><td>Account Payables&nbsp;<\/td><td>AP_PAYMENTS&nbsp;<\/td><td>Payments&nbsp;<\/td><\/tr><tr><td>Procurement&nbsp;<\/td><td>POZ_SUPPLIERS&nbsp;<\/td><td>Suppliers&nbsp;<\/td><\/tr><tr><td>Procurement&nbsp;<\/td><td>POZ_SUPPLIER_SITES_ALL_M&nbsp;<\/td><td>Supplier sites&nbsp;<\/td><\/tr><tr><td>Procurement&nbsp;<\/td><td>PO_HEADERS_ALL&nbsp;<\/td><td>Purchase orders&nbsp;<\/td><\/tr><tr><td>Procurement&nbsp;<\/td><td>PO_LINES_ALL&nbsp;<\/td><td>Purchase order lines&nbsp;<\/td><\/tr><tr><td>Projects&nbsp;<\/td><td>PJF_PROJECTS_ALL_B&nbsp;<\/td><td>Project&nbsp;<\/td><\/tr><tr><td>Projects&nbsp;<\/td><td>PJF_TASKS_V&nbsp;<\/td><td>Project Task&nbsp;<\/td><\/tr><tr><td>recruitment&nbsp;<\/td><td>IRC_CANDIDATES&nbsp;<\/td><td>Candidates&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Also Read: <\/strong><a href=\"https:\/\/www.datafusing.com\/oracle-fusion-ad-hoc-reporting\/\">Oracle Fusion Ad Hoc Reporting Made Easy with CloudSQL<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions (FAQs)<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1759475622247\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What is the difference between a table and a view in the Oracle Fusion schema?\u00a0<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>A <strong>table<\/strong> stores data physically in rows and columns (e.g., AP_INVOICES_ALL).\u00a0A <strong>view<\/strong> is a saved SQL query that pulls data from one or more tables (e.g., AP_INVOICES_V). Views don\u2019t store data themselves; they display it.\u00a0<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1759475723318\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Can BI developers query all Fusion tables?\u00a0<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes and No. Only tables and views exposed to the <strong>BI Publisher \/ OTBI roles<\/strong> can be queried. Practically, almost all tables that a developer needs can be queried. Some sensitive or system-level tables are restricted and not available to every role.\u00a0<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1759475833090\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How are flexfields stored in Fusion database tables?\u00a0<\/h3>\n<div class=\"rank-math-answer \">\n\n<p><strong>Descriptive Flexfields (DFFs):<\/strong> Stored as ATTRIBUTE1, ATTRIBUTE2, etc., inside base tables. Their meaning depends on the context (e.g., payroll number in the UK vs. tax code in Australia).\u00a0<\/p>\n<p><strong>Extensible Flexfields (EFFs):<\/strong> Stored in <strong>separate extension tables<\/strong> (e.g., PER_ASSIGNMENT_EXTRA_INFO), linked back to the base table with foreign keys.\u00a0<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1759475853590\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">How do Oracle updates affect data model structure?\u00a0<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Oracle rarely makes breaking changes. Updates are <strong>mostly backward compatible<\/strong>, meaning existing SQLs usually continue to work. After each update, it\u2019s best to <strong>refresh your CloudSQL database browser<\/strong> to see the latest schema changes.\u00a0<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Oracle Fusion applications run on top of an Oracle database (RDBMS). Like any database, it contains tables, views, primary keys, and indexes. The data model defines how business entities are organized and related. Tables organize data in rows and columns, utilizing keys for unique identification and establishing relationships.&nbsp; As Oracle consultants, we often need to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":26057,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[203],"tags":[],"class_list":["post-25975","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle-fusion-sql-development"],"_links":{"self":[{"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/posts\/25975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/comments?post=25975"}],"version-history":[{"count":12,"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/posts\/25975\/revisions"}],"predecessor-version":[{"id":27936,"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/posts\/25975\/revisions\/27936"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/media\/26057"}],"wp:attachment":[{"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/media?parent=25975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/categories?post=25975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.datafusing.com\/wp-json\/wp\/v2\/tags?post=25975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}