【问题标题】:How to insert base64 encoded img src attribute into table in Oracle and then display it on the page in Oracle apex如何将base64编码的img src属性插入Oracle中的表中,然后在Oracle Apex的页面上显示
【发布时间】:2019-03-25 01:18:45
【问题描述】:

我的要求是将 img src 值插入到表中,然后显示在顶点页面上。 我该怎么做?

我创建了一个将 img src 插入 CLOB 列的函数 但如果长度超过 32000,它不会将其插入 CLOB 列

【问题讨论】:

  • 感谢您的链接 - 但我在这里有点困惑。我应该将我的 base64 编码转换为 blob,将其存储到表中并显示它 - 我需要将其转换回clob.是吗?
  • 在我的链接中我提供了两个函数进行双向转换,你需要什么?
  • @WernfriedDomscheit 你建议我在这里做什么 - 我有一个 base64 编码的字符串 - 这是一个数据 URI,我应该将其转换为 BLOB,将其插入表然后显示 - 将其转换回来到 CLOB?
  • 此外,基本编码字符串对 CLOB 和 BLOB 有字符限制。

标签: oracle oracle-apex oracle-apex-5.1


【解决方案1】:

您的数据在 32000 个字符处被截断(实际上可能是 32767 个字符),这意味着您有一些中间值 VARCHAR2。除此之外,这里没有足够的信息。

获得 base64 编码数据后,要将其显示在 Apex 页面上,最简单的方法是使用 PL/SQL 区域和 htp 包。没有一个本机 htp 函数支持 CLOB,因此您必须以块的形式输出它。像这样的:

i:= 1;
loop
    l_chunk := dbms_lob.substr( l_b64_clob, l_chunk_size, i );
    exit when l_chunk is null;
    htp.prn( l_chunk );
    i := i + l_chunk_size;
end loop;

我建议您编写一个可重用的过程来执行此操作。

【讨论】:

  • 块大小可以任意定义。
猜你喜欢
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
相关资源
最近更新 更多