Plsql 如何在触发器中创建临时表?

Plsql 如何在触发器中创建临时表?,plsql,triggers,temp,Plsql,Triggers,Temp,我想在触发器中创建一个临时表来存储一些数据。我在网上做了一些研究,大多数人建议我使用以下查询创建它: create #tempTableName (x datatype, y datatype..); 或 然而,当我自己在oracle中这样做时,它不起作用,它似乎建议我可以以“#”开头命名一个表。在这种情况下我该怎么办?另外,PL/SQL表和临时表之间有什么区别?谢谢。除非用双引号括起对象名称,否则不能在对象名称中使用特殊字符:“#试探性名称”。此外,触发器中严格禁止使用DDL语句。预先创建全

我想在触发器中创建一个临时表来存储一些数据。我在网上做了一些研究,大多数人建议我使用以下查询创建它:

create #tempTableName (x datatype, y datatype..);


然而,当我自己在oracle中这样做时,它不起作用,它似乎建议我可以以“#”开头命名一个表。在这种情况下我该怎么办?另外,PL/SQL表和临时表之间有什么区别?谢谢。

除非用双引号括起对象名称,否则不能在对象名称中使用特殊字符:
“#试探性名称”
。此外,触发器中严格禁止使用DDL语句。预先创建全局临时表,然后使用它。检查。
PL/SQL表
-您是指PL/SQL集合吗?如果是的话,这是可能的,也不是很难做到。如果您想在触发器内创建一个普通的表,那么您的设计就有很大的问题。最好在这里描述一下,你们为什么想要它。谢谢你们。所以我想在触发器中创建一个临时表。这有可能实现@Dmitry吗?我认为,如果你能描述一下,你想用一个临时表解决什么问题,对你来说会更好。因为无论如何,这是一个奇怪的解决方案。但若您需要表,则应该在使用前创建它,然后在触发器中插入/更新数据。oracle中的临时表将在提交或会话关闭后自动清理:
select * into #tempTableName from ...;