FAQ
What is UC AI?
Section titled âWhat is UC AI?âUC AI is a comprehensive Oracle PL/SQL framework that enables direct integration with AI models (OpenAI GPT, Anthropic Claude, Google Gemini, Ollama) from within your Oracle database. It allows AI models to execute database functions through a structured tool system, bringing AI capabilities directly to where your data lives.
Which Oracle Database versions are supported?
Section titled âWhich Oracle Database versions are supported?âUC AI supports Oracle Database 12.2 or later. You donât need Oracle 23ai - the framework works with existing Oracle databases.
Which AI providers are supported?
Section titled âWhich AI providers are supported?âCurrently, UC AI supports seven AI providers:
- OpenAI (GPT models)
- Anthropic (Claude models)
- Google (Gemini models)
- OCI (Oracle Cloud Infrastructure Generative AI)
- Ollama (Open source models like Llama, Mistral, Qwen, etc.)
- xAI (Grok models)
- OpenRouter (Unified access to models from many providers)
The framework is designed to make it easy to switch between providers without changing your code.
Do I need to install additional dependencies?
Section titled âDo I need to install additional dependencies?âThe only dependency is the Logger package, which is included in the project. You can either install the full Logger for debugging capabilities or use the âno-opâ version if you donât need logging functionality.
Can AI models interact with my database data?
Section titled âCan AI models interact with my database data?âYes! One of UC AIâs key features is function calling (tools). You can register database functions that the AI can call during conversations to look up data, perform calculations, or interact with your database - making your AI assistant truly powerful.
How do I get started quickly?
Section titled âHow do I get started quickly?â- Clone the repository
- Install Logger (or Logger no-op)
- Run the installation script
- Set up your API keys for your chosen AI provider
- Start using
uc_ai.generate_text()in your PL/SQL code
Check out the Installation Guide for detailed steps.
What if UC AI doesnât have a constant for a new model?
Section titled âWhat if UC AI doesnât have a constant for a new model?âAI providers frequently release new models. If UC AI doesnât yet offer a constant for a model, you can simply pass the model name as a string directly to the p_model parameter:
declare l_result json_object_t;begin l_result := uc_ai.generate_text( p_user_prompt => 'What is Oracle APEX?', p_provider => uc_ai.c_provider_openai, p_model => 'gpt-5.4' );end;The p_model parameter accepts any varchar2 value, so you are not limited to the pre-defined constants. The constants are provided for convenience and to avoid typos, but any valid model identifier string that the provider accepts will work.
Why doesnât UC AI have a table of providers and models instead of constants?
Section titled âWhy doesnât UC AI have a table of providers and models instead of constants?âThis is a deliberate design decision. UC AI provides package constants for common models as a convenience, but intentionally does not maintain a configuration table of providers and models. Hereâs why:
- You can use any model immediately â as explained above, you can pass any model name as a string to
p_modelwithout waiting for a UC AI update. - The model landscape changes too fast â new models are released constantly. A configuration table would always be outdated unless maintained by the user anyway.
- Some providers have hundreds of models â OpenRouter alone supports over 600 models. Maintaining a complete list is not feasible.
- Override scenarios make it impractical â OpenAI-compatible providers like DeepSeek work through base URL overrides without first-class support. There is no way to provide constants for all possible override combinations.
- Organizations want their own governance â most teams want to restrict which providers and models are available to their users. This kind of policy logic is better owned by your application.
The focus of UC AI is on making LLMs work reliably across providers. If you need a model catalog or approval workflow, we recommend implementing that in your own application layer.