在Oracle Apex中将Blob列内容从一个表复制到另一个表

时间:2018-06-27 16:01:24

标签: oracle oracle-apex

我目前正在尝试将Oracle Apex 5中的Blob列的内容从一个表复制到另一个表,无论如何,它不会复制BLOB数据,所有这些字段都留空,这正在驱动我坚果。

这是我用来完成此过程的PL / SQL。

insert into ATTACHMENTS_AVAIL 
  ("ADDED_FILE", "MIMETYPE", "FILENAME", "CONTRACTOR_ID", "DATE_ADDED", "TYPE") 
select RESUME,
       MIMETYPE,
       FILENAME,
       :P24_CONTRACTOR_ID,
       sysdate,
       'Resume'
from subs 
where pkey = :P24_SUBS_PKEY;

知道我在这里缺少什么吗?

这是字段类型。

ADDED_FILE    - BLOB
MIMETYPE      - VARCHAR2
FILENAME      - VARCHAR2
CONTRACTOR_ID - NUMBER
DATE_ADDED    - DATE
TYPE          - VARCHAR2

1 个答案:

答案 0 :(得分:0)

  

(...)将所有这些字段留空

这意味着</a>子句完全失败:

  • 没有sample_html = ''' <a class="screener-link-primary" href="aych-ref">AGM</a> <a class="screener-link-primary" href="aych-ref">AGO</a> ''' from bs4 import BeautifulSoup soup = BeautifulSoup(sample_html, 'html.parser') links = soup.find_all('a', class_='screener-link-primary') for link in links: print(link.text) 的值等于WHERE项的值,或者
  • SUBS.PKEY是空的

为什么?因为即使其他所有值都为NULL,也会插入P24_SUBS_PKEY(插入P24_SUBS_PKEY)和'Resume'(插入SYSDATE列)。因此,DATE_ADDED失败是因为TYPE失败是因为INSERT不起作用。

我假设您检查了SELECT表是否包含适当的值。因此,我假设WHERE项目不包含任何内容。也许您看到屏幕上的值,但是-它是否处于会话状态?我猜不是。在该过程结束后,启用调试并检查会话状态值。

说您编写了一个应该执行SUBS进程-该进程何时“触发”?最简单的方法可能是,当您按下提交页面的按钮时。而且,一旦提交,项目的值就会“存储”到会话状态。我建议您这样做,以确保它确实有效。然后,如有必要,您可以改善整个过程。