相关疑难解决方法(0)

在Oracle中创建检查表之前是否存在检查表

在Oracle中创建之前,尝试检查表是否存在.从Stackoverflow和其他人那里搜索大部分帖子.找一些查询,但它对我不起作用.

IF((SELECT count(*) FROM dba_tables where table_name = 'EMPLOYEE') <= 0)
THEN
create table EMPLOYEE
(
ID NUMBER(3),
NAME VARCHAR2(30) NOT NULL
)
END IF;
Run Code Online (Sandbox Code Playgroud)

这给了我错误

Error: ORA-00900: invalid SQL statement
SQLState:  42000
ErrorCode: 900
Position: 1
Run Code Online (Sandbox Code Playgroud)

我搜索条件的语法IF,我认为哪个也是写的.请建议我....

oracle if-statement

27
推荐指数
2
解决办法
10万
查看次数

强制Oracle Drop全局临时表

在我们的项目中,我创建了一些全局临时表,如下所示:

CREATE GLOBAL TEMPORARY TABLE v2dtemp (
  id           NUMBER,
  GOOD_TYPE_GROUP       VARCHAR2(250 BYTE),
  GOOD_CODE             VARCHAR2(50 BYTE),
  GOOD_TITLE            VARCHAR2(250 BYTE)
)
ON COMMIT PRESERVE ROWS;
Run Code Online (Sandbox Code Playgroud)

但问题出现的时候我想放弃这张桌子.甲骨文不会让我放弃表,它说:

ORA-14452: attempt to create, alter or drop an index on temporary table already in use
Run Code Online (Sandbox Code Playgroud)

我必须在某些过程中使用此表,但可能会根据其他报告进行更改.所以我应该总是丢弃表,然后我应该用我需要的字段重新创建它.

出于某些商业原因,我必须使用它,所以我不可能使用表格或其他东西.我只能使用临时表.我尝试了提交删除行,但是当我调用我的过程来使用此表中的数据时,表中没有更多行,并且它们已被删除.

任何帮助将非常感谢,提前感谢

///编辑

public void saveJSONBatchOpenJobs(final JSONArray array, MtdReport report) {
    dropAndCreateTable();
    String sql = "INSERT INTO v2d_temp " +
            "(ID, KARPARDAZ, GOOD_TYPE_GROUP, GOOD_CODE, GOOD_TITLE, COUNT, "
            + "FACTOR_COUNT, GHABZ_COUNT, DEAL_NO, DEAL_DATE, REQUEST_NO, REQUEST_DATE, "
            + "REQUEST_CLIENT, STATUS, TYPE, MTDREPORT_ID, …
Run Code Online (Sandbox Code Playgroud)

oracle ddl plsql temp-tables

8
推荐指数
2
解决办法
3万
查看次数

标签 统计

oracle ×2

ddl ×1

if-statement ×1

plsql ×1

temp-tables ×1