内部数据库为Oracle时,如何在OutSystems用Advanced SQL创建临时表?
在OutSystems Advanced SQL中为Oracle数据库创建临时表
可以在OutSystems的Advanced SQL组件中为Oracle数据库创建临时表,操作逻辑和Oracle原生语法一致,结合OutSystems组件特性,具体实现如下:
实现步骤
1. 选择Oracle临时表类型
Oracle临时表分两种,按需选择:
- 会话级临时表:数据在整个会话周期内保留,会话结束自动清理
CREATE GLOBAL TEMPORARY TABLE Temp_User ( UserId NUMBER, UserName VARCHAR2(50) ) ON COMMIT PRESERVE ROWS; - 事务级临时表:数据在事务提交/回滚后自动清理
CREATE GLOBAL TEMPORARY TABLE Temp_Order ( OrderId NUMBER, OrderDate DATE ) ON COMMIT DELETE ROWS;
2. 在Advanced SQL中执行创建语句
打开OutSystems的Advanced SQL组件,将上述Oracle原生创建语句直接写入SQL编辑器即可。需注意:
- 无需添加OutSystems实体前缀,直接使用Oracle原生语法
- 确保执行该组件的数据库用户拥有
CREATE TABLE权限(OutSystems默认数据库用户通常具备,权限不足时需联系DBA调整)
3. 操作临时表数据
创建完成后,可在同一份或后续的Advanced SQL中对临时表执行增删改查,示例:
-- 插入数据 INSERT INTO Temp_User (UserId, UserName) VALUES (1, 'John Doe'); -- 查询数据 SELECT UserId, UserName FROM Temp_User;
关键注意事项
- 临时表仅对当前会话可见,不同OutSystems请求(会话)无法访问彼此的临时表数据
- Oracle会自动管理临时表生命周期,无需手动删除;若需提前清理会话内数据,可执行
TRUNCATE TABLE Temp_User; - 临时表命名建议以
Temp_开头,避免与OutSystems平台内置表名冲突 - 不要尝试将OutSystems实体与临时表进行自动关联查询,需通过显式字段匹配实现关联
内容的提问来源于stack exchange,提问作者David Schuler
相关产品推荐
相关产品推荐

