我正在研究Oracle DB 12c测试,但是我对不断涌现的东西有些迷失。
我了解
CREATE #MYTABLE (x number);
创建一个本地临时表,但是我不确定它如何应用于以下语法:
CREATE MYTABLE#OTHER (x number);
有人可以解释吗?我无法在搜索引擎中找到任何答案。
答案 0 :(得分:4)
您当前的代码看起来更像SQL Server。 SQL Server使用井号/井号#
表示一个临时表。例如:
CREATE TABLE #temp (id int)
Oracle不使用井号。例如:
--Global temp:
CREATE GLOBAL TEMPORARY TABLE temp(id number)
ON COMMIT DELETE ROWS;
--or ON COMMIT PRESERVE ROWS;
临时表在SQL Server中也有所不同,因为它们仅存在于创建它们的上下文中(即脚本执行),然后自动将它们删除。在Oracle中,它们像普通表一样持久存在。绝对值得阅读和了解有关使用哪种DBMS的临时表的利弊。
无论如何,在Oracle中运行此命令将抛出无效字符错误,因为表不能以#
开头:
CREATE TABLE #MYTABLE (x number);
运行此命令将起作用,但它不是临时表。这将是一个名为MYTABLE#OTHER
的表:
CREATE TABLE MYTABLE#OTHER (x number);