oracle - PLSQL 函数返回一个 clob,但不清楚它是被隐式释放还是自动释放
问题描述
我对 PLSQL 很陌生。
但是,我正在使用 CLOB 数据类型。我听说用 CLOB 很容易造成内存泄漏?
这是我创建的一个函数,它只是从表中选择数据并将其放入 CLOB。我还需要做些什么来确保正确管理我的内存吗?
CREATE OR REPLACE FUNCTION getLastGPoverPeriod
RETURN clob IS
stuff clob;
BEGIN
SELECT NAME INTO stuff
FROM TEMP;
dbms_output.put_line(stuff);
RETURN stuff;
END;
/
解决方案
你的代码很好。当匿名块完成时,匿名块使用的资源会自动清除(未提交的事务除外)。我从未见过由 CLOB 引起的内存泄漏。
尽管大型 CLOB 存在一些潜在的空间问题。CLOB 可以存储在临时表空间中,这是一种有限的资源,而且大小并不总是合适的。. 但是一次读取一个 CLOB 应该不是问题,除非它是一个数 GB 的文件。
推荐阅读
- python - 从网站查询3年的数据但只能看到三个月
- python - Django-Storages ('`data` 必须是字节,已接收',
) 保存模型字段时 - python-3.x - 如何跟踪用户输入的分数?
- cuda - 其他块的线程是否可以访问内核中使用 malloc 分配的内存?
- python - 使用类型作为函数参数的 Pythonic 方式
- javascript - 从同一组件链接到组件不起作用
- html - 在我的选项卡式内容框中将嵌入的 Youtube 视频居中
- javascript - 如何重新加载 nuxt .js 的自定义布局?
- python - 在不改变维度的情况下连接两个向量的最佳方法是什么?总和,平均值,中位数..等
- haskell - 无法使用 cabal 安装 Random 模块?(哈斯克尔)