Linux shell 脚本如何仅在表不存在时创建 Oracle 表。

23 浏览
0 Comments

Linux shell 脚本如何仅在表不存在时创建 Oracle 表。

这个问题已经在这里有了答案:

Oracle: If Table Exists

我是Linux的新手,我想检查Oracle中是否不存在一张表,如果不存在则使用Linux shell脚本创建一个新的表。我可能需要使用 if else语句?

这是我在Oracle中创建表的代码

Create table traffic_profile_external
(
  TRAFFIC_PROFILE_ID    NUMBER,     
  PE_INGRESS_FLAG       VARCHAR2(1),
  PE_EGRESS_FLAG        VARCHAR2(1),
  CE_INGRESS_FLAG       VARCHAR2(1),
  CE_EGRESS_FLAG        VARCHAR2(1),
  COS_PROFILE_TYPE      VARCHAR2(10)
);

admin 更改状态以发布 2023年5月21日
0
0 Comments

尝试这个:\n

Create table IF NOT EXISTS traffic_profile_external
(
   TRAFFIC_PROFILE_ID    NUMBER,     
   PE_INGRESS_FLAG       VARCHAR2(1),
   PE_EGRESS_FLAG        VARCHAR2(1),
   CE_INGRESS_FLAG       VARCHAR2(1),
   CE_EGRESS_FLAG        VARCHAR2(1),
   COS_PROFILE_TYPE      VARCHAR2(10)
);

0
0 Comments

您可以通过查询dba_|all_|user_tables来查看表是否存在,这取决于您的特权、您是否在其他模式中可能创建表等。因此,您可以执行一些操作如

select count(*)
  from all_tables
 where owner = <>
   and table_name = 'TRAFFIC_PROFILE_EXTERNAL'

然后根据返回的结果决定是否执行CREATE TABLE语句。您可以在匿名PL/SQL块中执行此操作,但是那样您将不得不使用动态SQL(通过EXECUTE IMMEDIATE语句)来运行CREATE TABLE语句。您还可以在 shell 脚本中将SELECT语句的结果获取到变量中,并根据该变量分支操作。

0