Обсуждение: incorrect data type in function

Поиск
Список
Период
Сортировка

incorrect data type in function

От
rapg12@gmail.com
Дата:
The following documentation comment has been logged on the website:

Page: http://www.postgresql.org/docs/8.2/static/plpgsql-porting.html
Description:

on page :

http://www.postgresql.org/docs/current/static/plpgsql-porting.html

under 40.12.1. Porting Examples -> Example 40-8. Porting a Simple Function
from PL/SQL to PL/pgSQL
======================================
CREATE OR REPLACE FUNCTION cs_fmt_browser_version(v_name varchar,
                                                  v_version varchar)
RETURN varchar IS
BEGIN
    IF v_version IS NULL THEN
        RETURN v_name;
    END IF;
    RETURN v_name || '/' || v_version;
END;
/
show errors;
======================================


The data types in the function parameter and the returned type were seems
typed incorrectly or missed typo ... in ORACLE there is no varchar, but
there is varchar2

And since I AM away from ORACLE for more than decade, I might be wrong.

Appreciate your efforts in keeping the best as open source.

Thanks,


Re: incorrect data type in function

От
Tom Lane
Дата:
rapg12@gmail.com writes:
> The data types in the function parameter and the returned type were seems
> typed incorrectly or missed typo ... in ORACLE there is no varchar, but
> there is varchar2

According to what I can find on the web, Oracle treats varchar and
varchar2 as interchangeable type names, but they say they might someday
fix varchar to be spec-compliant about distinguishing null from empty
strings.  (I'll believe that when I see it...)

So our examples are not wrong, but nonetheless this is a good suggestion
because changing them creates an opportunity to talk about the general
porting problem of needing to translate Oracle type names to Postgres.
I've pushed a patch based on that:

http://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=23f11dc21b0135702a2852aac927bdc4f9d69cef

Thanks for the suggestion!

            regards, tom lane