<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yurii Dobrytsia</title>
    <description>The latest articles on DEV Community by Yurii Dobrytsia (@yurii_dobrytsia).</description>
    <link>https://dev.to/yurii_dobrytsia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3931602%2F5b23edba-ebc4-4a16-880e-da474dd0e0a2.jpg</url>
      <title>DEV Community: Yurii Dobrytsia</title>
      <link>https://dev.to/yurii_dobrytsia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yurii_dobrytsia"/>
    <language>en</language>
    <item>
      <title>Fairness in AI Is Information Governance: What OpenAI vs DeepSeek Shows About Bias, Context, and Misinformation</title>
      <dc:creator>Yurii Dobrytsia</dc:creator>
      <pubDate>Thu, 14 May 2026 16:04:06 +0000</pubDate>
      <link>https://dev.to/yurii_dobrytsia/fairness-in-ai-is-information-governance-what-openai-vs-deepseek-shows-about-bias-context-and-1m47</link>
      <guid>https://dev.to/yurii_dobrytsia/fairness-in-ai-is-information-governance-what-openai-vs-deepseek-shows-about-bias-context-and-1m47</guid>
      <description>&lt;h2&gt;
  
  
  Why this article
&lt;/h2&gt;

&lt;p&gt;This article was originally published on Medium. I am cross-posting it here for the developer and AI community, with the canonical link pointing to the original version.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI Assistants Are Not Neutral Mirrors
&lt;/h2&gt;

&lt;p&gt;When people compare OpenAI and DeepSeek, the discussion often becomes a race between model scores, price, openness, censorship, and speed. Those topics matter, but they miss a deeper fairness problem: large language models are increasingly used as information infrastructure.&lt;/p&gt;

&lt;p&gt;They are not only tools that generate text. They select, compress, rank, frame, refuse, summarize, and explain. In that sense, they behave less like a static encyclopedia and more like a dynamic layer of algorithmic curation.&lt;/p&gt;

&lt;p&gt;That matters because information is never completely neutral. A model response depends on training data, source selection, prompt wording, product rules, safety filters, regional governance, and the user's own assumptions. The result can be accurate in isolated facts while still misleading in framing.&lt;/p&gt;

&lt;p&gt;The fairness question is therefore not only: "Is the model biased?" It is also: "How does the system decide which context becomes visible, which uncertainty is disclosed, which sources are trusted, and which interpretations are made easy?"&lt;/p&gt;

&lt;p&gt;This article uses OpenAI and DeepSeek as a practical comparison, but the central argument is broader: fairness in AI is information governance.&lt;/p&gt;

&lt;h2&gt;
  
  
  From Misinformation To Decontextualization
&lt;/h2&gt;

&lt;p&gt;A useful starting point is the distinction between misinformation and disinformation. Misinformation is false or misleading information spread without deliberate intent to deceive. Disinformation involves intentional deception. Moller, Hameleers, and Ferreau argue that the two dimensions that matter are facticity and intention: how close the information is to the truth, and whether the sender is trying to mislead.&lt;/p&gt;

&lt;p&gt;This distinction is important for AI systems because not every harmful output is a hallucinated fake. Some of the most difficult cases involve real information used in a misleading way.&lt;/p&gt;

&lt;p&gt;Decontextualization is the key example. A video, quote, statistic, or document can be genuine but still create a false conclusion when time, location, selection criteria, completeness, or causal framing are missing. In the COVID-19 debate, the #filmyourhospital example showed how real hospital footage could be used to imply a broader claim about pandemic conditions without enough context to support that conclusion.&lt;/p&gt;

&lt;p&gt;This is where simple truth labels become too weak. If the artifact is real, a "true/false" correction does not solve the problem. The problem is the inference created around it.&lt;/p&gt;

&lt;p&gt;AI assistants can reproduce the same pattern. A model can summarize genuine facts but omit context. It can present a dominant media frame as if it were the full debate. It can answer confidently when the right response would be qualified. It can flatten the difference between evidence, opinion, reporting, propaganda, and speculation.&lt;/p&gt;

&lt;p&gt;Fairness therefore requires more than factuality. It requires context integrity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Layers Of Bias In AI Information Systems
&lt;/h2&gt;

&lt;p&gt;Bias in AI answers rarely comes from one place. It is cumulative.&lt;/p&gt;

&lt;p&gt;First, there is source bias. Training data, web pages, news articles, forums, books, code, and institutional documents are already shaped by language, geography, politics, economics, and media incentives. If some perspectives are overrepresented, the model may learn them as the ordinary center of gravity.&lt;/p&gt;

&lt;p&gt;Second, there is user bias. Prompts can be suggestive. A user asking "Why is X dangerous?" is not asking the same question as "What are the main arguments for and against X?" Models often try to be helpful within the frame the user provides, so a biased prompt can narrow the answer before generation begins.&lt;/p&gt;

&lt;p&gt;Third, there is system bias. Model architecture, reinforcement learning, refusal policies, ranking logic, retrieval systems, product defaults, and safety classifiers all shape what the user sees. Even when the model is not "trying" to persuade anyone, its design choices can make some interpretations more likely than others.&lt;/p&gt;

&lt;p&gt;This is why AI fairness should be analyzed as a pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What data was selected?&lt;/li&gt;
&lt;li&gt;What labels or preferences shaped training?&lt;/li&gt;
&lt;li&gt;What safety policy guides refusals and style?&lt;/li&gt;
&lt;li&gt;What sources are retrieved?&lt;/li&gt;
&lt;li&gt;What is ranked first?&lt;/li&gt;
&lt;li&gt;What context is hidden?&lt;/li&gt;
&lt;li&gt;What uncertainty is shown?&lt;/li&gt;
&lt;li&gt;Can users challenge or inspect the result?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The answer is not just an output. It is the final visible layer of a long chain of curation.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenAI And DeepSeek As Two Governance Models
&lt;/h2&gt;

&lt;p&gt;OpenAI and DeepSeek represent different trade-offs.&lt;/p&gt;

&lt;p&gt;OpenAI's consumer and API systems are centralized and proprietary. Users do not receive full access to model weights or complete training data. That limits inspectability. At the same time, OpenAI publishes model behavior guidance, safety evaluations, system cards, and research on topics such as political bias. Its Model Spec explicitly frames model behavior as something that should be legible, debated, evaluated, and improved over time. OpenAI's 2025 Model Spec includes principles such as upholding fairness and seeking truth together, with guidance to avoid hidden agendas, selective emphasis, and inconsistent treatment based on irrelevant demographic details.&lt;/p&gt;

&lt;p&gt;This is a governance-heavy model. The weakness is opacity around the underlying model. The strength is explicit behavioral governance.&lt;/p&gt;

&lt;p&gt;DeepSeek emerged with a different public image: technical efficiency, open-weight releases, strong reasoning performance, and lower cost. DeepSeek-V3 is described in its technical report as a Mixture-of-Experts model with 671B total parameters and 37B activated per token, using architectures such as Multi-head Latent Attention and DeepSeekMoE. DeepSeek-R1 emphasized reinforcement learning for reasoning and open-sourced R1-related models and distilled variants for the research community.&lt;/p&gt;

&lt;p&gt;This is an inspectability-heavy model. The weakness is that open weights and technical papers do not automatically solve product-level fairness, moderation, jurisdiction, or information-governance issues. The strength is that researchers can inspect, run, fine-tune, and compare the system more directly than with fully closed models.&lt;/p&gt;

&lt;p&gt;The comparison should not be reduced to "closed is safe" or "open is fair." Both claims are too simple.&lt;/p&gt;

&lt;p&gt;Closed systems can be safer in some abuse scenarios but harder to audit externally. Open-weight systems can improve research transparency but may vary significantly depending on deployment, fine-tuning, hosting jurisdiction, system prompts, safety layers, and application context.&lt;/p&gt;

&lt;p&gt;The fairness question is not which brand is morally pure. It is which governance choices are visible, testable, contestable, and aligned with the use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fairness Is Not Only About Demographics
&lt;/h2&gt;

&lt;p&gt;In AI ethics, fairness often means avoiding discrimination based on protected traits such as race, gender, religion, disability, nationality, or sexual orientation. That remains essential. But information systems introduce another fairness layer: epistemic fairness.&lt;/p&gt;

&lt;p&gt;Epistemic fairness concerns how knowledge is represented. Does the system give users a fair chance to understand the issue? Does it distinguish evidence from opinion? Does it show uncertainty? Does it avoid letting a dominant source ecosystem erase minority perspectives? Does it prevent malicious decontextualization without creating a private truth monopoly?&lt;/p&gt;

&lt;p&gt;This is especially important in political, historical, medical, legal, and geopolitical topics. A model can avoid demographic slurs while still producing an unfair answer if it suppresses relevant context, overweights one narrative, or presents an unresolved dispute as settled fact.&lt;/p&gt;

&lt;p&gt;Research on AI-generated news shows why this matters. A 2024 Scientific Reports study examined news-like content generated by several LLMs and found substantial gender and racial bias across generated content, while also noting differences between models. The broader lesson is not that one model is perfect and another is broken. It is that generated information inherits and transforms biases from data, prompts, and model behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filter Bubbles Become Conversational
&lt;/h2&gt;

&lt;p&gt;The older internet fairness problem was the feed. Search engines, social media timelines, and recommender systems could personalize information until users saw less diversity of perspective.&lt;/p&gt;

&lt;p&gt;LLMs change the interface, but not the risk. A conversational assistant can become a filter bubble in dialogue form.&lt;/p&gt;

&lt;p&gt;The mechanism is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user asks from inside an existing frame.&lt;/li&gt;
&lt;li&gt;The model responds within that frame.&lt;/li&gt;
&lt;li&gt;Follow-up questions reinforce the direction.&lt;/li&gt;
&lt;li&gt;The answer becomes more tailored, more confident, and less diverse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This can happen without malicious intent. If a system is optimized for helpfulness, relevance, engagement, or user satisfaction, it may give the user what they appear to want rather than what would make the information environment healthier.&lt;/p&gt;

&lt;p&gt;Sycophancy is part of this problem. A model that over-validates the user's premise may feel useful while quietly reducing epistemic friction. For fairness, sometimes the model must say: "That framing is too narrow" or "There are important counterarguments."&lt;/p&gt;

&lt;h2&gt;
  
  
  UNESCO's Procedural Approach
&lt;/h2&gt;

&lt;p&gt;UNESCO's Recommendation on the Ethics of Artificial Intelligence is useful because it does not imagine fairness as a single truth authority. In the field of communication and information, UNESCO explicitly connects AI with access to information, disinformation, misinformation, hate speech, freedom of expression, privacy, media literacy, automated journalism, and algorithmic curation.&lt;/p&gt;

&lt;p&gt;That is the right level of analysis. The problem is not only a bad answer. The problem is an information environment where visibility, ranking, context, and appeal mechanisms are controlled by technical systems.&lt;/p&gt;

&lt;p&gt;The strongest governance response is procedural:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explain why content or visibility was changed.&lt;/li&gt;
&lt;li&gt;Provide appeal and redress mechanisms.&lt;/li&gt;
&lt;li&gt;Preserve freedom of expression while reducing manipulative decontextualization.&lt;/li&gt;
&lt;li&gt;Invest in media and information literacy.&lt;/li&gt;
&lt;li&gt;Audit recommendation and retrieval systems for systematic distortions.&lt;/li&gt;
&lt;li&gt;Make context and provenance more visible to users.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This avoids the trap of creating a central "truth machine." Instead, it asks systems to make their interventions explainable and contestable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The EU AI Act Moves The Debate Toward Documentation
&lt;/h2&gt;

&lt;p&gt;The EU AI Act adds a legal layer to the governance problem. For general-purpose AI models, the European Commission explains that providers face obligations such as technical documentation, a copyright policy, and summaries of training content. Providers of models with systemic risk face additional duties around notification, risk assessment and mitigation, incident reporting, and cybersecurity protections.&lt;/p&gt;

&lt;p&gt;The General-Purpose AI Code of Practice, published in 2025, further organizes compliance around transparency, copyright, and safety/security.&lt;/p&gt;

&lt;p&gt;This is progress, but it does not fully solve output-level fairness. Documentation can say what a model is and how it was developed. It does not automatically ensure that every answer separates fact from opinion, shows uncertainty, diversifies sources, or explains why one frame was selected over another.&lt;/p&gt;

&lt;p&gt;That is the remaining gap: regulation is moving toward model documentation, but users also need answer-level transparency.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Practical Fairness Framework For LLMs
&lt;/h2&gt;

&lt;p&gt;A better fairness framework for AI assistants should combine model governance, product governance, and answer governance.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Context Integrity
&lt;/h3&gt;

&lt;p&gt;Models should preserve the context required to interpret a fact. For images, videos, quotes, and statistics, that means time, place, source, selection criteria, and uncertainty.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Source Diversity
&lt;/h3&gt;

&lt;p&gt;Retrieval and generation should avoid over-reliance on one media ecosystem, region, language, or political frame. Source diversity does not mean giving equal weight to unreliable claims. It means representing significant reliable perspectives proportionately.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Fact/Opinion Separation
&lt;/h3&gt;

&lt;p&gt;Answers should clearly distinguish empirical claims, interpretations, predictions, normative judgments, and contested viewpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Anti-Sycophancy Design
&lt;/h3&gt;

&lt;p&gt;Models should be trained and evaluated not only to satisfy users, but also to challenge misleading premises politely. A fair system sometimes needs to slow the user down.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Visibility Explanations
&lt;/h3&gt;

&lt;p&gt;If an AI system ranks, hides, labels, summarizes, or refuses content, users should understand the reason at a useful level of detail.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Contestability
&lt;/h3&gt;

&lt;p&gt;Users and affected parties should have ways to question moderation decisions, visibility reductions, and harmful summaries.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Independent Audits
&lt;/h3&gt;

&lt;p&gt;External audits should test not only benchmark performance but also source weighting, political neutrality, demographic bias, uncertainty handling, decontextualization, and filter-bubble effects.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Regional Governance Without Fragmented Truth
&lt;/h3&gt;

&lt;p&gt;Different legal regions may require different compliance layers, but models should avoid silently replacing one hidden ideology with another. Regional adaptation should be visible and documented.&lt;/p&gt;

&lt;h2&gt;
  
  
  What OpenAI And DeepSeek Teach Us
&lt;/h2&gt;

&lt;p&gt;OpenAI shows the importance of explicit behavioral governance. Its Model Spec and safety publications make intended behavior more discussable, even if the underlying model remains closed.&lt;/p&gt;

&lt;p&gt;DeepSeek shows the importance of technical inspectability and efficiency. Its public papers and open-weight releases make architecture and training choices more accessible, even if deployment-level governance remains a separate question.&lt;/p&gt;

&lt;p&gt;The fairer AI ecosystem will need both instincts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The openness to inspect and compare systems.&lt;/li&gt;
&lt;li&gt;The governance discipline to document, evaluate, and correct behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fairness cannot be reduced to open weights, closed safety layers, Western regulation, Chinese efficiency, or benchmark scores. It lives in the relationship between model design, information context, user agency, and institutional accountability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;AI fairness is not only about whether a model refuses hateful content or avoids demographic discrimination. It is also about whether the system helps users form informed judgments.&lt;/p&gt;

&lt;p&gt;Misinformation and disinformation research shows that harm often comes from context loss and misleading inference, not only from fabricated facts. OpenAI and DeepSeek show that different AI systems solve different parts of the transparency problem while leaving other parts open. UNESCO and the EU AI Act show that governance is moving toward documentation, transparency, risk management, and procedural safeguards.&lt;/p&gt;

&lt;p&gt;The next step is answer-level fairness: systems that show context, disclose uncertainty, diversify reliable sources, resist sycophancy, explain interventions, and allow users to challenge decisions.&lt;/p&gt;

&lt;p&gt;In the AI era, fairness is not just a model property. It is the quality of the information environment the model creates.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Moller, J., Hameleers, M., &amp;amp; Ferreau, F. (2020). "Typen von Desinformation und Misinformation." Die Medienanstalten / LFK. &lt;a href="https://www.lfk.de/fileadmin/PDFs/Publikationen/Studien/Typen-von-Desinformation-und-Misinformation/typen-von-desinformation-und-misinformation.pdf" rel="noopener noreferrer"&gt;https://www.lfk.de/fileadmin/PDFs/Publikationen/Studien/Typen-von-Desinformation-und-Misinformation/typen-von-desinformation-und-misinformation.pdf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;UNESCO. (2021). "Recommendation on the Ethics of Artificial Intelligence." &lt;a href="https://www.unesco.org/en/legal-affairs/recommendation-ethics-artificial-intelligence" rel="noopener noreferrer"&gt;https://www.unesco.org/en/legal-affairs/recommendation-ethics-artificial-intelligence&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OpenAI. (2025). "Model Spec." &lt;a href="https://model-spec.openai.com/2025-09-12.html" rel="noopener noreferrer"&gt;https://model-spec.openai.com/2025-09-12.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OpenAI. (2025). "Defining and evaluating political bias in LLMs." &lt;a href="https://openai.com/index/defining-and-evaluating-political-bias-in-llms/" rel="noopener noreferrer"&gt;https://openai.com/index/defining-and-evaluating-political-bias-in-llms/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OpenAI. (2026). "Inside our approach to the Model Spec." &lt;a href="https://openai.com/index/our-approach-to-the-model-spec/" rel="noopener noreferrer"&gt;https://openai.com/index/our-approach-to-the-model-spec/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DeepSeek-AI. (2024/2025). "DeepSeek-V3 Technical Report." &lt;a href="https://arxiv.org/abs/2412.19437" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2412.19437&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DeepSeek-AI. (2025/2026). "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning." &lt;a href="https://arxiv.org/abs/2501.12948" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2501.12948&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DeepSeek. "DeepSeek API Docs." &lt;a href="https://api-docs.deepseek.com/" rel="noopener noreferrer"&gt;https://api-docs.deepseek.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;European Commission. "General-purpose AI obligations under the AI Act." &lt;a href="https://digital-strategy.ec.europa.eu/en/factpages/general-purpose-ai-obligations-under-ai-act" rel="noopener noreferrer"&gt;https://digital-strategy.ec.europa.eu/en/factpages/general-purpose-ai-obligations-under-ai-act&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;European Commission. "The General-Purpose AI Code of Practice." &lt;a href="https://digital-strategy.ec.europa.eu/en/policies/contents-code-gpai" rel="noopener noreferrer"&gt;https://digital-strategy.ec.europa.eu/en/policies/contents-code-gpai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fang, X., Che, S., Mao, M., Zhang, H., Zhao, M., et al. (2024). "Bias of AI-generated content: an examination of news produced by large language models." Scientific Reports. &lt;a href="https://www.nature.com/articles/s41598-024-55686-2" rel="noopener noreferrer"&gt;https://www.nature.com/articles/s41598-024-55686-2&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>machinelearning</category>
      <category>ethics</category>
    </item>
    <item>
      <title>Oracle AI Database 26ai: Relational Integrity, Vector Search, and AI-Ready Financial Workflows</title>
      <dc:creator>Yurii Dobrytsia</dc:creator>
      <pubDate>Thu, 14 May 2026 16:02:28 +0000</pubDate>
      <link>https://dev.to/yurii_dobrytsia/oracle-ai-database-26ai-relational-integrity-vector-search-and-ai-ready-financial-workflows-27n2</link>
      <guid>https://dev.to/yurii_dobrytsia/oracle-ai-database-26ai-relational-integrity-vector-search-and-ai-ready-financial-workflows-27n2</guid>
      <description>&lt;h2&gt;
  
  
  Why this article
&lt;/h2&gt;

&lt;p&gt;This article was originally published on Medium. I am cross-posting it here for the developer and data engineering community, with the canonical link pointing to the original version.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Question
&lt;/h2&gt;

&lt;p&gt;The most interesting part of Oracle AI Database 26ai is not that it can run ordinary relational workloads. That part is expected. The more important question is how an established enterprise database changes when AI workloads become part of the same data layer.&lt;/p&gt;

&lt;p&gt;In many AI projects, teams separate operational data, vector search, document storage, model calls, and analytics into different systems. That can work, but it introduces integration cost: duplicated data, inconsistent access control, extra synchronization, and more places where governance can fail.&lt;/p&gt;

&lt;p&gt;Oracle's 26ai direction is different. The database is positioned as a place where structured business data and AI-oriented retrieval can live together. Relational records, JSON, graph, spatial data, text, and vector embeddings can be queried under the same database engine and security model.&lt;/p&gt;

&lt;p&gt;This article uses a compact financial example to show why that matters. The starting point is a secured loan backed by bond collateral. The first version uses ordinary relational SQL to calculate exposure and detect undercollateralization. The stronger version adds Oracle 26ai-specific AI concepts: &lt;code&gt;VECTOR&lt;/code&gt; columns, vector distance search, vector indexes, hybrid retrieval, and Select AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes 26ai Relevant For AI Workloads
&lt;/h2&gt;

&lt;p&gt;Oracle AI Database 26ai is the long-term-support release that replaced the 23ai naming line after the October 2025 release update. Oracle states that the release includes hundreds of new features with a focus on AI and developer productivity. The features that matter most for this article are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Vector Search:&lt;/strong&gt; Store and search vector embeddings inside Oracle Database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;VECTOR&lt;/code&gt; data type:&lt;/strong&gt; Store embeddings next to business records instead of only in a separate vector database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector distance functions:&lt;/strong&gt; Use SQL functions such as &lt;code&gt;VECTOR_DISTANCE&lt;/code&gt; with metrics such as cosine or Euclidean distance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector indexes:&lt;/strong&gt; Use approximate-nearest-neighbor indexes such as HNSW and IVF to speed up similarity search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid search:&lt;/strong&gt; Combine semantic vector search with keyword search through Oracle Text and vector indexing structures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select AI:&lt;/strong&gt; Use natural-language prompts through SQL when an AI profile and provider are configured.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the Oracle-specific depth that a generic relational database introduction misses. Tables, joins, keys, and ACID behavior still matter, but in 26ai they can now be combined with semantic retrieval patterns used in RAG and agentic AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Baseline Business Model: A Secured Loan
&lt;/h2&gt;

&lt;p&gt;The scenario is intentionally small. A customer receives a loan. A government bond is deposited as collateral. The loan accrues simple interest. If the collateral value falls below the current exposure, the loan status is changed to &lt;code&gt;TERMINATED&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The relational model has two core entities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;BOND_COLLATERAL&lt;/code&gt;: stores collateral instruments and their current value.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SECURED_LOAN&lt;/code&gt;: stores loan contracts and references collateral through a foreign key.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;BOND_COLLATERAL&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;BOND_ID&lt;/span&gt;      &lt;span class="n"&gt;NUMBER&lt;/span&gt;        &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;BOND_NAME&lt;/span&gt;    &lt;span class="n"&gt;VARCHAR2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;VALUE_EUR&lt;/span&gt;    &lt;span class="n"&gt;NUMBER&lt;/span&gt;        &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="k"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="n"&gt;PK_BOND_COLLATERAL&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;SECURED_LOAN&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;LOAN_ID&lt;/span&gt;        &lt;span class="n"&gt;NUMBER&lt;/span&gt;        &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;BORROWER&lt;/span&gt;       &lt;span class="n"&gt;VARCHAR2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;BOND_ID&lt;/span&gt;        &lt;span class="n"&gt;NUMBER&lt;/span&gt;        &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;  &lt;span class="n"&gt;NUMBER&lt;/span&gt;        &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;RATE_PCT&lt;/span&gt;       &lt;span class="n"&gt;NUMBER&lt;/span&gt;        &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;START_DATE&lt;/span&gt;     &lt;span class="nb"&gt;DATE&lt;/span&gt;          &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;STATUS&lt;/span&gt;         &lt;span class="n"&gt;VARCHAR2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="k"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="n"&gt;PK_SECURED_LOAN&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LOAN_ID&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="k"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="n"&gt;FK_SECURED_LOAN_BOND&lt;/span&gt; &lt;span class="k"&gt;FOREIGN&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;REFERENCES&lt;/span&gt; &lt;span class="n"&gt;BOND_COLLATERAL&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The foreign key is not decoration. It ensures that a loan cannot reference missing collateral. In a financial system, this kind of referential integrity is the basic layer below analytics, reporting, and AI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;BOND_COLLATERAL&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'GOV BOND'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;SECURED_LOAN&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'CUSTOMER A'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;70000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;DATE&lt;/span&gt; &lt;span class="s1"&gt;'2026-01-01'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'ACTIVE'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;COMMIT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the exposure can be calculated as principal plus accrued interest:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
  &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LOAN_ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BORROWER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BOND_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;VALUE_EUR&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;COLLATERAL_VALUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;
    &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RATE_PCT&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nb"&gt;DATE&lt;/span&gt; &lt;span class="s1"&gt;'2026-01-10'&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;START_DATE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;365&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="mi"&gt;2&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;INTEREST_EUR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;
    &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;
      &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RATE_PCT&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nb"&gt;DATE&lt;/span&gt; &lt;span class="s1"&gt;'2026-01-10'&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;START_DATE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;365&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="mi"&gt;2&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;EXPOSURE_EUR&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;SECURED_LOAN&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;BOND_COLLATERAL&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the bond value drops to EUR 65,000, the exposure is now larger than the collateral value. The update below implements the termination rule:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;BOND_COLLATERAL&lt;/span&gt;
&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;VALUE_EUR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;65000&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;BOND_ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;COMMIT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;SECURED_LOAN&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;
&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;STATUS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'TERMINATED'&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;
  &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;
    &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RATE_PCT&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nb"&gt;DATE&lt;/span&gt; &lt;span class="s1"&gt;'2026-01-10'&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;START_DATE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;365&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;VALUE_EUR&lt;/span&gt;
  &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;BOND_COLLATERAL&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;
  &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;COMMIT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is still ordinary SQL. It is useful, but it does not yet use the AI-specific capabilities of 26ai.&lt;/p&gt;

&lt;h2&gt;
  
  
  Extending The Example With Vector Search
&lt;/h2&gt;

&lt;p&gt;Real credit monitoring does not only depend on numeric fields. It also depends on policies, internal risk rules, collateral documentation, market commentary, covenant clauses, and exception notes. Those are often text-heavy and harder to search with only exact keywords.&lt;/p&gt;

&lt;p&gt;This is where Oracle AI Vector Search becomes relevant. Oracle 26ai supports a &lt;code&gt;VECTOR&lt;/code&gt; data type for embeddings. A text fragment can be transformed into an embedding by an embedding model, then stored in Oracle next to its business metadata.&lt;/p&gt;

&lt;p&gt;For example, a credit-policy table could look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_CHUNK&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;CHUNK_ID&lt;/span&gt;         &lt;span class="n"&gt;NUMBER&lt;/span&gt;         &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;POLICY_NAME&lt;/span&gt;      &lt;span class="n"&gt;VARCHAR2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;CHUNK_TEXT&lt;/span&gt;       &lt;span class="k"&gt;CLOB&lt;/span&gt;           &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;  &lt;span class="n"&gt;VECTOR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FLOAT32&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="k"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="n"&gt;PK_LOAN_POLICY_CHUNK&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CHUNK_ID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;384&lt;/code&gt; dimension is only an example. In a real system, the dimension must match the embedding model used to generate the vectors. Oracle supports vector formats such as &lt;code&gt;FLOAT32&lt;/code&gt;, &lt;code&gt;FLOAT64&lt;/code&gt;, &lt;code&gt;INT8&lt;/code&gt;, and &lt;code&gt;BINARY&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Small sample fragments could describe business rules:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_CHUNK&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CHUNK_ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;POLICY_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CHUNK_TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'Collateral monitoring'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'If the exposure exceeds eligible collateral value, the loan must be reviewed and may be terminated.'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;TO_VECTOR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'[0.12, 0.44, 0.31]'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FLOAT32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The example above uses only three dimensions to keep the SQL readable. Production embeddings usually have hundreds or thousands of dimensions.&lt;/p&gt;

&lt;p&gt;Once the table contains many embedded fragments, a semantic search can retrieve policy text by meaning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
  &lt;span class="n"&gt;POLICY_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;CHUNK_TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;VECTOR_DISTANCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;TO_VECTOR&lt;/span&gt;&lt;span class="p"&gt;(:&lt;/span&gt;&lt;span class="n"&gt;QUERY_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FLOAT32&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;COSINE&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;SEMANTIC_DISTANCE&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_CHUNK&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;VECTOR_DISTANCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;TO_VECTOR&lt;/span&gt;&lt;span class="p"&gt;(:&lt;/span&gt;&lt;span class="n"&gt;QUERY_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FLOAT32&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="n"&gt;COSINE&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;FETCH&lt;/span&gt; &lt;span class="k"&gt;FIRST&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;ROWS&lt;/span&gt; &lt;span class="k"&gt;ONLY&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important point is not the sample vector values. The important point is architectural: policy text can be retrieved semantically while remaining inside the same database environment as the loan and collateral records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding A Vector Index
&lt;/h2&gt;

&lt;p&gt;Exact vector search compares the query vector against many stored vectors. That is acceptable for tiny examples, but not for large document collections. Oracle supports vector indexes to make approximate-nearest-neighbor search faster.&lt;/p&gt;

&lt;p&gt;For example, an HNSW index can be created like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;VECTOR&lt;/span&gt; &lt;span class="k"&gt;INDEX&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_HNSW_IDX&lt;/span&gt;
&lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_CHUNK&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ORGANIZATION&lt;/span&gt; &lt;span class="n"&gt;INMEMORY&lt;/span&gt; &lt;span class="n"&gt;NEIGHBOR&lt;/span&gt; &lt;span class="n"&gt;GRAPH&lt;/span&gt;
&lt;span class="n"&gt;DISTANCE&lt;/span&gt; &lt;span class="n"&gt;COSINE&lt;/span&gt;
&lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;TARGET&lt;/span&gt; &lt;span class="n"&gt;ACCURACY&lt;/span&gt; &lt;span class="mi"&gt;95&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Oracle also supports IVF indexes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;VECTOR&lt;/span&gt; &lt;span class="k"&gt;INDEX&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_IVF_IDX&lt;/span&gt;
&lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_CHUNK&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ORGANIZATION&lt;/span&gt; &lt;span class="n"&gt;NEIGHBOR&lt;/span&gt; &lt;span class="n"&gt;PARTITIONS&lt;/span&gt;
&lt;span class="n"&gt;DISTANCE&lt;/span&gt; &lt;span class="n"&gt;COSINE&lt;/span&gt;
&lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;TARGET&lt;/span&gt; &lt;span class="n"&gt;ACCURACY&lt;/span&gt; &lt;span class="mi"&gt;95&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a concrete Oracle-specific feature. A normal relational database chapter does not explain HNSW or IVF vector indexing. These indexes matter for AI workloads because RAG systems and agent memory stores often search thousands or millions of embedded chunks.&lt;/p&gt;

&lt;p&gt;After indexing, a query can request approximate results:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
  &lt;span class="n"&gt;POLICY_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;CHUNK_TEXT&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_CHUNK&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;VECTOR_DISTANCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;TO_VECTOR&lt;/span&gt;&lt;span class="p"&gt;(:&lt;/span&gt;&lt;span class="n"&gt;QUERY_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FLOAT32&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="n"&gt;COSINE&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;FETCH&lt;/span&gt; &lt;span class="n"&gt;APPROX&lt;/span&gt; &lt;span class="k"&gt;FIRST&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;ROWS&lt;/span&gt; &lt;span class="k"&gt;ONLY&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives up exact exhaustive comparison in exchange for speed, controlled by the index and target accuracy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Combining Structured Rules And Semantic Retrieval
&lt;/h2&gt;

&lt;p&gt;The stronger AI-data pattern is to combine relational filtering with semantic retrieval. For example, first identify loans that are undercollateralized, then retrieve the most relevant policy fragments for explaining what should happen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;EXPOSURE&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LOAN_ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BORROWER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;STATUS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;VALUE_EUR&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;COLLATERAL_VALUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;
      &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PRINCIPAL_EUR&lt;/span&gt;
        &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RATE_PCT&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nb"&gt;DATE&lt;/span&gt; &lt;span class="s1"&gt;'2026-01-10'&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;START_DATE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;365&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;EXPOSURE_EUR&lt;/span&gt;
  &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;SECURED_LOAN&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;
  &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;BOND_COLLATERAL&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BOND_ID&lt;/span&gt;
&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="n"&gt;POLICY_HITS&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;POLICY_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CHUNK_TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;VECTOR_DISTANCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="n"&gt;TO_VECTOR&lt;/span&gt;&lt;span class="p"&gt;(:&lt;/span&gt;&lt;span class="n"&gt;QUERY_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FLOAT32&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="n"&gt;COSINE&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;SEMANTIC_DISTANCE&lt;/span&gt;
  &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;LOAN_POLICY_CHUNK&lt;/span&gt; &lt;span class="n"&gt;P&lt;/span&gt;
  &lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;VECTOR_DISTANCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CHUNK_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;TO_VECTOR&lt;/span&gt;&lt;span class="p"&gt;(:&lt;/span&gt;&lt;span class="n"&gt;QUERY_EMBEDDING&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FLOAT32&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;COSINE&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;FETCH&lt;/span&gt; &lt;span class="n"&gt;APPROX&lt;/span&gt; &lt;span class="k"&gt;FIRST&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="k"&gt;ROWS&lt;/span&gt; &lt;span class="k"&gt;ONLY&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt;
  &lt;span class="n"&gt;E&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LOAN_ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;E&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BORROWER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;E&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;EXPOSURE_EUR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;E&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COLLATERAL_VALUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;POLICY_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CHUNK_TEXT&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;EXPOSURE&lt;/span&gt; &lt;span class="n"&gt;E&lt;/span&gt;
&lt;span class="k"&gt;CROSS&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;POLICY_HITS&lt;/span&gt; &lt;span class="n"&gt;P&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;E&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;EXPOSURE_EUR&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;E&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COLLATERAL_VALUE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is closer to the kind of data pattern AI systems need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Numeric exposure is calculated using deterministic SQL.&lt;/li&gt;
&lt;li&gt;Collateral status comes from governed relational data.&lt;/li&gt;
&lt;li&gt;Policy explanation comes from semantic retrieval.&lt;/li&gt;
&lt;li&gt;The application does not need to copy business data into a separate vector-only store.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a risk analyst, this could support a dashboard explanation. For an AI assistant, it could become part of a retrieval-augmented answer: "This loan is undercollateralized because exposure is EUR 70,103.56 while collateral is EUR 65,000. The relevant policy says loans exceeding eligible collateral must be reviewed and may be terminated."&lt;/p&gt;

&lt;p&gt;The model should not be allowed to invent the numeric conclusion. SQL should calculate it. The model can help explain it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hybrid Search: Why Keywords Still Matter
&lt;/h2&gt;

&lt;p&gt;Vector search is useful because it searches by semantic similarity. But financial and legal documents often contain exact terms that must not be blurred away, such as an ISIN, contract ID, counterparty name, legal phrase, or rating category.&lt;/p&gt;

&lt;p&gt;This is why hybrid retrieval matters. Oracle's 26ai documentation describes hybrid vector indexes as combining Oracle Text structures with vector indexing structures. In practice, that means an application can combine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keyword matching for exact terms.&lt;/li&gt;
&lt;li&gt;Vector similarity for meaning and context.&lt;/li&gt;
&lt;li&gt;Relational filters for structured constraints such as customer, region, status, date, or exposure amount.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That combination is more robust than pure vector search for enterprise AI. A semantic search may find the right concept, but a keyword or relational predicate may be needed to anchor the result to the exact business object.&lt;/p&gt;

&lt;h2&gt;
  
  
  Select AI: Natural Language As A Database Interface
&lt;/h2&gt;

&lt;p&gt;Oracle 26ai also includes Select AI, which allows natural-language interaction through SQL when the system is configured with an AI profile and provider.&lt;/p&gt;

&lt;p&gt;For example, a user can ask for generated SQL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;AI&lt;/span&gt; &lt;span class="n"&gt;showsql&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="k"&gt;all&lt;/span&gt; &lt;span class="n"&gt;active&lt;/span&gt; &lt;span class="n"&gt;loans&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;exposure&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;greater&lt;/span&gt; &lt;span class="k"&gt;than&lt;/span&gt; &lt;span class="n"&gt;collateral&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or run a natural-language request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;AI&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="k"&gt;all&lt;/span&gt; &lt;span class="n"&gt;terminated&lt;/span&gt; &lt;span class="n"&gt;loans&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;their&lt;/span&gt; &lt;span class="n"&gt;collateral&lt;/span&gt; &lt;span class="k"&gt;values&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The useful part is not that this replaces SQL knowledge. It does not. Oracle's own documentation warns that LLM outputs may be wrong and should be checked. The useful part is that a database can expose a natural-language layer while still grounding the final answer in database metadata and SQL execution.&lt;/p&gt;

&lt;p&gt;For professional use, I would treat Select AI as a productivity interface, not as an authority. A good workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use &lt;code&gt;SELECT AI showsql&lt;/code&gt; to inspect the generated query.&lt;/li&gt;
&lt;li&gt;Validate joins, filters, and aggregation logic.&lt;/li&gt;
&lt;li&gt;Run the SQL only when the generated logic is correct.&lt;/li&gt;
&lt;li&gt;Add comments, views, and clear column names to improve natural-language interpretation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This point matters because many AI failures in analytics are not syntax failures. They are data-model failures: joining at the wrong level, filtering the wrong status, double-counting facts, or misunderstanding a business definition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strengths And Weaknesses Of Oracle 26ai For This Use Case
&lt;/h2&gt;

&lt;p&gt;The strongest argument for Oracle 26ai is integration. A financial AI workflow can keep transactional records, policy fragments, vector embeddings, SQL logic, and retrieval logic closer together. That reduces the need to stitch together a separate relational database, vector database, text search engine, and governance layer.&lt;/p&gt;

&lt;p&gt;The second strength is governance. In finance, healthcare, logistics, and government, AI systems must be built around access control, auditability, consistency, and operational reliability. Oracle's enterprise database background is relevant here because the AI features are being added to an engine already designed for controlled data.&lt;/p&gt;

&lt;p&gt;The third strength is query composition. Oracle can combine relational predicates and vector similarity in SQL. That is valuable because most enterprise AI questions are not purely semantic. They are mixed questions: "Find the relevant policy for active loans in Germany where collateral coverage dropped below threshold after a market value update."&lt;/p&gt;

&lt;p&gt;There are trade-offs. Oracle is complex. AI Vector Search introduces additional concepts such as embedding models, vector dimensions, distance metrics, vector memory sizing, HNSW versus IVF indexes, target accuracy, and hybrid indexing. Select AI requires provider configuration and careful validation. For small prototypes, this can feel heavier than using a lightweight database plus a managed vector service.&lt;/p&gt;

&lt;p&gt;Cost and operational skill also matter. Oracle AI Database Free is useful for learning, but production deployments need licensing, infrastructure planning, backup, monitoring, patching, security configuration, and database administration.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Example Shows
&lt;/h2&gt;

&lt;p&gt;The original relational workflow shows how Oracle handles structured business data: tables, keys, joins, calculations, updates, and transactions. The 26ai extension shows how the same environment can support AI-oriented retrieval:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store policy text and embeddings in a &lt;code&gt;VECTOR&lt;/code&gt; column.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;VECTOR_DISTANCE&lt;/code&gt; to find semantically relevant fragments.&lt;/li&gt;
&lt;li&gt;Use HNSW or IVF vector indexes for approximate search.&lt;/li&gt;
&lt;li&gt;Combine vector retrieval with structured SQL filters.&lt;/li&gt;
&lt;li&gt;Use Select AI as a natural-language interface, while validating generated SQL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the deeper lesson: AI-ready databases are not only about storing vectors. They are about combining deterministic business logic with probabilistic retrieval in a governed data system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Oracle AI Database 26ai is most interesting when it is evaluated as an enterprise AI data layer, not only as a traditional RDBMS. The ordinary relational features still matter because they provide correctness, structure, and transactional behavior. The newer AI features matter because they bring semantic search, vector indexing, and natural-language access closer to the operational data.&lt;/p&gt;

&lt;p&gt;For the secured-loan example, SQL should calculate exposure and enforce status changes. Vector search can retrieve the relevant policy fragments and explanatory context. Select AI can help users ask questions, but the generated SQL still needs review.&lt;/p&gt;

&lt;p&gt;This balance is the practical future of many AI systems: deterministic databases for facts and rules, vector search for meaning, and language models for interaction and explanation.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Oracle, "Oracle AI Database 26ai New Features Guide", May 2026. &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/nfcoa/all-nfg.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/nfcoa/all-nfg.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "Oracle AI Vector Search User's Guide", April 2026. &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/ai-vector-search-users-guide.pdf" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/ai-vector-search-users-guide.pdf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "Create Tables Using the VECTOR Data Type". &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/create-tables-using-vector-data-type.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/create-tables-using-vector-data-type.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "&lt;code&gt;VECTOR_DISTANCE&lt;/code&gt;". &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/vector_distance.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/vector_distance.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "&lt;code&gt;CREATE VECTOR INDEX&lt;/code&gt;". &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/create-vector-index.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/create-vector-index.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "Create Vector Indexes and Hybrid Vector Indexes". &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/create-vector-indexes-and-hybrid-vector-indexes.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/vecse/create-vector-indexes-and-hybrid-vector-indexes.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "Select AI". &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/selai/select-ai.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/selai/select-ai.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "Use AI Keyword to Enter Prompts". &lt;a href="https://docs.oracle.com/en/database/oracle/oracle-database/26/selai/use-ai-keyword-enter-prompts.html" rel="noopener noreferrer"&gt;https://docs.oracle.com/en/database/oracle/oracle-database/26/selai/use-ai-keyword-enter-prompts.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Oracle, "AI Database FAQ". &lt;a href="https://www.oracle.com/europe/database/faq/" rel="noopener noreferrer"&gt;https://www.oracle.com/europe/database/faq/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DB-Engines, "DB-Engines Ranking", May 2026. &lt;a href="https://db-engines.com/en/ranking/" rel="noopener noreferrer"&gt;https://db-engines.com/en/ranking/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>oracle</category>
      <category>sql</category>
      <category>database</category>
    </item>
  </channel>
</rss>
