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
我更喜欢经济上的解决办法
|
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
Anar · Oracle SQL用户定义函数 2 年前 |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |