【发布时间】:2015-01-13 16:11:31
【问题描述】:
我需要通过 IBM Aginity 工作台在 IBM netezza SQL 数据库中创建一个存储过程。
这是我创建 SP 的 SQL 代码:
CREATE OR REPLACE PROCEDURE "SP_drop_a_table_if_exists"(varchar(128))
RETURNS boolean
EXECUTE AS OWNER
LANGUAGE NZPLSQL AS
BEGIN_PROC
declare
oname alias for $1;
o record;
begin
select otype into o
from (
select 'TABLE' otype from _v_table where tablename = upper(oname)
union all
select 'VIEW' otype from _v_view where viewname = upper(oname)
) x;
if found then
execute immediate 'DROP '||o.otype||' '||oname;
end if;
end;
END_PROC;
我创建成功。
但是,当我运行它时,
CALL SP_drop_a_table_if_exists('test_a_table':: varchar(128))
我收到错误:
ERROR[42S02] error: function 'sp_drop_a_table_if_exists(varchar)' does not exists
unable to identify a function that satisdy the given argument types
you may need to add explicit typecasts
任何帮助将不胜感激!
【问题讨论】:
标签: sql stored-procedures netezza