PL / SQL如何检查变量类型

时间:2015-03-04 09:15:36

标签: sql database oracle plsql

我的简短PL / SQL需要帮助: 我有一个功能完成"创建替换"它需要1个变量,除了我的例外,我想检查它是否是正确的变量类型:

create or replace FUNCTION MYFunction(p_variable in BINARY_INTEGER) RETURN DATE PARALLEL_ENABLE IS

not_number EXCEPTION;

BEGIN
  IF p_variable NOT BINARY_INTEGER
  THEN RAISE not_number
END IF;

EXCEPTION
...
END

这只是我的功能的简化版本。因此,您可以看到我想检查给定变量是否具有正确的类型。

或者是否有其他基于oracle的异常已经捕获到这种情况?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如何重载将接收所有可能(预期)类型的函数并返回描述相应类型的字符串?

这样的事情:

function f_variable_type (p_variable in BINARY_INTEGER) return varchar2
is
(
  return 'BINARY_INTEGER';

);

function f_variable_type(p_variable in varchar2) return varchar2
is
(
  return 'VARCHAR2';
);

function f_variable_type(p_variable in number) return varchar2
is
(
  return 'NUMBER';
);

(所有变量类型等等)

然后在if语句中使用该函数:

BEGIN
  IF f_variable_type(p_variable) !='BINARY_INTEGER'
  THEN RAISE not_number
END IF;