Hola,
para comenzar deberías de leer un poco sobre los tipos de datos en Oracle y hagas tú una comparación entre ambos motores. Por ejemplo, si en postgresql usabas Interger para los numeros enteros, en Oracle puedes usar NUMBER, o para cadenas usar VARCHAR2 y así... eso es lo más básico que debes ver.
Nunca he trabajado con procedimientos almacenados/funciones en Postgresql, pero al menos en Oracle si creas una función debes crearla dentro de un paquete. Los paquetes son objetos contenedores, tanto de funciones como procedimientos.
Código SQL:
Ver originalCREATE OR REPLACE
package MI_PAQUETE_PKG IS
FUNCTION MI_FUNCION(PARAM1 NUMBER,
PARAM2 VARCHAR2) RETURN VARCHAR2;
FUNCTION MI_FUNCION2(PARAM1 NUMBER,
PARAM2 VARCHAR2) RETURN VARCHAR2;
END MI_PAQUETE_PKG;
[/CODE]
Código SQL:
Ver originalCREATE OR REPLACE
PACKAGE BODY MI_PAQUETE_PKG AS
FUNCTION MI_FUNCION(PARAM1 NUMBER,
PARAM2 VARCHAR2) RETURN VARCHAR2 AS
V_VAR1 VARCHAR2;
BEGIN
PARAM1 := 2+2; --hacer alguna operación
PARAM2 := 'hola mundo';
V_VAR1 := PARAM2 || ' HOLA'; --asignación y concatenar
RETURN V_VAR1;
END MI_FUNCION;
FUNCTION MI_FUNCION2(PARAM1 NUMBER,
PARAM2 VARCHAR2) RETURN VARCHAR2 AS
V_VAR1 VARCHAR2;
BEGIN
V_VAR1 := "Hola mundo":
RETURN V_VAR1;
END MI_FUNCION;
END MI_PAQUETE_PKG;
[/CODE]