我正在将一些存储过程从Sybase TSQL转换为Oracle PL/SQL,我已经遇到了一个我正在努力解决的问题!
DECLARE
t INT := 0;
t_error EXCEPTION;
v_line VARCHAR2(100);
BEGIN
SELECT COUNT(*) INTO t FROM user_tables WHERE table_name = UPPER('tbl_BSUK_PriceIssue');
IF t = 1 THEN
EXECUTE IMMEDIATE 'DROP TABLE tbl_BSUK_PriceIssue';
t := 0;
SELECT COUNT(*) INTO t FROM user_tables WHERE table_name = UPPER('tbl_BSUK_PriceIssue');
IF t = 1 THEN
RAISE t_error;
END IF;
END IF;
EXCEPTION
WHEN t_error THEN
v_line := '<<< FAILED DROPPING table tbl_BSUK_PriceIssue >>>';
dbms_output.put_line (v_line);
WHEN OTHERS THEN
v_line := '<<< Unknown Error >>>';
dbms_output.put_line (v_line);
END;
END;
命令-DECLARE中从第17行开始出错
t INT:=0;t_error异常;v_line VARCHAR2(100);
开始
实际上,我正在尝试用PL/SQL版本替换以下TSQL:
-- Create temp table for relevant trev_id's
IF OBJECT_ID('dbo.tbl_BSUK_PriceIssue') IS NOT NULL
BEGIN
DROP TABLE dbo.tbl_BSUK_PriceIssue
IF OBJECT_ID('dbo.tbl_BSUK_PriceIssue') IS NOT NULL
PRINT '<<< FAILED DROPPING TABLE dbo.tbl_BSUK_PriceIssue >>>'
ELSE
PRINT '<<< DROPPED TABLE dbo.tbl_BSUK_PriceIssue >>>'
END
go
尝试删除本节中的end;
WHEN OTHERS THEN
v_line := '<<< Unknown Error >>>';
dbms_output.put_line (v_line);
END;
UPD.实际上,您可以做得更短一点,不需要检查drop后表是否存在
declare
eTableNotExists exception;
pragma exception_init(eTableNotExists, -00942);
begin
EXECUTE IMMEDIATE 'DROP TABLE tbl_BSUK_PriceIssue';
dbms_output.put_line('<<< DROPPED TABLE dbo.tbl_BSUK_PriceIssue >>>');
exception
when eTableNotExists then null
when others then
dbms_output.put_line ('<<< Unknown Error >>>' || sqlerrm);
end;
/
如果表已经存在,如何检查TarantoolSQL?
问题内容: 我希望这是关于如何使用SQL语句检查SQL Server 2000/2005中是否存在表的最终讨论。 当您用Google搜索答案时,会得到很多不同的答案。有官方/后向和向前兼容的方式吗? 这是两种可能的方法。两种方法中的哪一种是标准/最佳方法? 第一种方式: 第二种方式: MySQL提供的简单 陈述。我正在寻找类似的东西。 问题答案: 对于此类查询,最好始终使用INFORMATION_
问题内容: 我想向用户显示他是否喜欢图像。为此,我正在创建php代码 我无法对“标签”,“份额”,“评论”,“收藏夹”等事物执行此操作…许多没有比这更简单的了吗?喜欢说 问题答案: 确实有很多方法可以做到这一点,但是如果您打算使用更多的信息,那么用户是否喜欢使用select *是一个坏主意。原因是您要数据库返回该表中每一列的值。 假设它是一个小型数据库,可能不是问题,但是随着数据库变大,您将在数据
问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。
问题内容: 我正在尝试编写一个查询,该查询将检查MySQL中的特定表是否具有特定列,如果没有,则创建它。否则什么都不做。在任何企业级数据库中,这实际上都是一个简单的过程,但是MySQL似乎是一个例外。 我以为 可以工作,但是失败很严重。有办法吗? 问题答案: 这对我来说很好。 使用PHP就像…
本文向大家介绍检查数字是否为PL / SQL中的回文,包括了检查数字是否为PL / SQL中的回文的使用技巧和注意事项,需要的朋友参考一下 在本节中,我们将看到如何检查号码是否是回文或者是不使用PL / SQL。在PL / SQL代码,一些命令组被布置语句的相关声明的一个块中。 如果数字与该数字相反,则该数字为回文。假设一个数12321,这是回文,但12345是不是回文。 示例 输出结果