Clob 作为 PL/SQL Java 存储过程的参数

Posted

技术标签:

【中文标题】Clob 作为 PL/SQL Java 存储过程的参数【英文标题】:Clob as param for PL/SQL Java Stored Procedure 【发布时间】:2010-05-07 01:41:22 【问题描述】:

我有一个 java 存储过程,它接受一个代表一段 javascript 的 clob 并将其分解。调用JSP的函数结构如下:

function MIN_JS(pcl_js in clob) return clob as
  language java name 'JSMin.min(oracle.sql.CLOB) return oracle.sql.CLOB';

在实际的 JSP 中,我有以下内容:

import oracle.sql.CLOB;

public class JSMin 
...
public static min(CLOB js) 
...

我遇到的问题是,每当我将 clob 传递给 JS_MIN 时,它总是在 JSP 中被解释为 null。我在调用 JS_MIN 之前检查了 clob,它肯定有内容。关于我缺少什么的任何想法?非常感谢任何帮助。

【问题讨论】:

大概您的JSMin 类是Douglas Crockford 的java 实现的包装器。如果您发布了课程的足够详细信息以便人们能够重新创建课程,将会很有帮助。 【参考方案1】:

事实证明,我发送的其中一个 javascript 块实际上是空的。我们有几个包可以为各种控件生成 javascript,其中一个显然仍在开发中,并且以一种始终返回 null 的方式进行包装,除非您以特定用户身份登录。

在我的代码中,我遍历所有 javascript 包,将每个包发送到 JS_MIN。一切都很顺利,直到仍在开发中的软件包出现并通过 null。我添加了一个简单的 null 检查,现在一切正常。

所以简短的回答是:Doh!

【讨论】:

以上是关于Clob 作为 PL/SQL Java 存储过程的参数的主要内容,如果未能解决你的问题,请参考以下文章

将 BLOB/CLOB 作为参数传递给 PL/SQL 函数

PL/SQL - XML Clob 错误

用于处理来自 CLOB 的 CSV 的 Oracle PL/SQL 包/过程

使用带有布尔输入参数的 PL/SQL 在 oracle 中调用 java 存储过程

Oracle存储过程OUT CLOB返回错误字符串缓冲区太小

使用 PL SQL 提取基于属性的 XML