>The solution is the same whether you upgrade or not: you need
>to adjust your search_path to include the "oracle" schema,
>or else explicitly qualify references to orafce functions.Thank you very much 
>for your help.


To use the to_date functions of Orafce 3.0.1, we created the following to_date 
function in the public schema of the old database.


-----
CREATE OR REPLACE FUNCTION to_date(str text) RETURNS date AS $$ SELECT 
$1::date; $$ LANGUAGE sql IMMUTABLE STRICT; COMMENT ON FUNCTION 
public.to_date(text) IS 'Convert string to date';
-----


To avoid using a to_date function with the same name and parameter in the 
pg_catalog schema first, the search_path of the old database is set as follows:


"$user", public, pg_catalog


Make sure that public is searched before pg_catalog.
After the database is upgraded, in order to solve the changes in Oracle 3.24, 
we have added oracle schema to the search_path, as shown below:


"$user", public, oracle, pg_catalog


The following error occurred when I ran my application.


42P13:ERROR:42P13: return type mismatch in function declared to return 
pg_catalog.date


When I put the oracle schema at the end of the search_path, the problem was 
solved. 
The search_path settings without problems are as follows:


"$user", public, pg_catalog, oracle


Why does it report an error when i put oracle between public and pg_catalog?











At 2023-04-20 01:18:15, "Tom Lane" <t...@sss.pgh.pa.us> wrote:
>gzh  <gzhco...@126.com> writes:
>> Thank you for your prompt reply. 
>> Is there another solution if the database is not upgraded to 12.14?
>
>The solution is the same whether you upgrade or not: you need
>to adjust your search_path to include the "oracle" schema,
>or else explicitly qualify references to orafce functions.
>
>                       regards, tom lane

Reply via email to