Introduction
This article explains a known behavior when migrating a 360Eyes repository
from Oracle to PostgreSQL: Web Intelligence can generate SQL that includes
UNISTR(), which is Oracle-specific, UNISTR() are generally used via filter on characters fields.
Error Signature
function unistr(unknown) does not exist
Root Cause
UNISTR() is an Oracle function used for Unicode string
handling. PostgreSQL does not support this function because Unicode is
handled natively in UTF-8.
UNISTR()is not defined in the 360Eyes universe.- It is not controlled by 360Suite.
- It is generated automatically by Web Intelligence depending on query context and filters.
This is why simple universe queries can run correctly, while existing WebI documents may fail after migration.
What This Means
- Your PostgreSQL configuration can be correct (UTF-8) and still fail.
- The
360eyes_REPORTSuniverse can be compatible and still fail. - The issue usually comes from SQL generation inherited from Oracle-era WebI documents.
-
There is no universe or 360Suite parameter to automatically disable or
replace
UNISTR()in generated WebI SQL.
Best Practices for Oracle to PostgreSQL Migration
1. Identify affected WebI Filters
Prioritize documents that:
- Were originally created under Oracle.
- Use complex filters or list-based filters.
- Use character fields with manually entered values.
2. Review and Adapt WebI Filters
- Avoid In list filters with manually specified values on character objects when possible.
- Prefer simple filters (Equal to) or dynamic filters.
- Delete and recreate problematic filters in affected documents.
3. Recreate Critical Documents on PostgreSQL
For strategic documents:
- Create a new WebI document directly on PostgreSQL.
- Rebuild queries from the universe.
- Reapply formatting logic if required.
This ensures SQL is generated in a PostgreSQL-compatible context.
4. Test with WebI Rich Client
In some cases, WebI Rich Client generates SQL differently than BI Launchpad
and may avoid UNISTR() injection. Use this only as a temporary
workaround, not as a long-term fix.
5. Treat This as a Web Intelligence Limitation
This behavior is driven by Web Intelligence and is outside the scope of 360Suite. For blocking scenarios, open a ticket with SAP Support to document behavior on the WebI side.
Summary
- The error is caused by Oracle-specific
UNISTR()generated by WebI. - PostgreSQL cannot execute
UNISTR(). - The database and universe can still be correctly configured.
- Fixes must be applied in WebI documents, not in the universe.
- Adaptation or recreation of documents is recommended during migration.