![]() |
1
485
最好和最有效的方法是捕获“找不到表”异常:这样可以避免检查表是否存在两次的开销;并且不会遇到这样的问题:如果由于其他原因(可能很重要)导致放置失败,异常仍然会向调用方引发:
补遗 以下是其他对象类型的等效块以供参考: 序列
视图
触发
索引
柱
数据库链接
物化视图
类型
约束
调度器作业
用户/模式
包裹
程序
功能
表空间
|
![]() |
2
121
这是为了检查当前架构中的表是否存在。
为了检查给定的表是否已经存在于不同的架构中,必须使用
|
![]() |
3
24
我一直在寻找同样的方法,但最后我写了一个程序来帮助我:
希望这有帮助 |
![]() |
4
12
只想发布一个完整的代码,它将创建一个表,并删除它,如果它已经存在,使用杰弗里的代码(向他致敬,而不是我!).
|
![]() |
5
9
使用SQL*PLUS,您还可以使用EVERY SQLERROR命令:
用
|
![]() |
6
3
Oracle中没有“drop table if exists”,您必须执行select语句。 试试这个(我不懂Oracle语法,所以如果我的变量是ify,请原谅我):
|
![]() |
7
3
一种方法是使用 DBMS_ASSERT.SQL_OBJECT_NAME :
|
![]() |
8
2
另一种方法是定义一个异常,然后只捕获允许所有其他异常传播的异常。
|
![]() |
9
0
不幸的是,没有这样的东西:如果存在,就删除;如果不存在,就创建。 您可以编写一个plsql脚本来包含其中的逻辑。 http://download.oracle.com/docs/cd/B12037_01/server.101/b10759/statements_9003.htm 我对Oracle语法不太了解,但我认为@erich的脚本应该是这样的。
|
![]() |
10
0
你总是可以自己发现错误。
过度使用这种方法被认为是不好的做法,类似于其他语言中的空catch()。
当做
|
![]() |
11
0
我更喜欢指定表和模式所有者。 注意区分大小写。(见下文“上限”条款)。 我扔了两个不同的东西来证明它可以在桌子以外的地方使用。 ……
以及一个表格示例:
|
![]() |
12
0
//执行此代码,检查表是否存在,然后创建表max。这只在单个编译中工作 |
![]() |
13
0
如果要使其可重新输入并最小化放置/创建周期,可以使用DBMS元数据缓存DDL。获取DDL并使用如下结构重新创建所有内容:
|
![]() |
14
0
像这样的块对你有用。
|
![]() |
15
0
我更喜欢经济上的解决办法
|
|
Johnny T · 基于当前值的SQL合并表[重复] 4 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 5 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 5 月前 |
![]() |
Sax · 规范化Google表格(第一步) 5 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 5 月前 |