首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL ORACLE使用htf组合两个表(超文本函数)

SQL ORACLE使用htf组合两个表(超文本函数)
EN

Stack Overflow用户
提问于 2018-07-23 18:35:10
回答 1查看 60关注 0票数 1

我在SQL ORACLE数据库上工作,我创建了一个表,然后进入foor loob,并使用htf将表转换为html格式。

代码语言:javascript
复制
create table first_table (id number, data varchar2(25));
insert into first_table values(101, 'numberone')
insert into first_table values(202, 'numbertwo')

create table second_table (no number, data varchar2(25));
insert into second_table values(05369277635, 'phoneone')
insert into second_table values(06362190876, 'phonetwo')

DECLARE
  v_html VARCHAR2(32767);
  s_html VARCHAR2(32767);
BEGIN
  v_html := v_html || HTF.TABLEOPEN('border="1px"');
  v_html := v_html || HTF.TABLEROWOPEN;
  v_html := v_html || HTF.TABLEHEADER('ID.DATA');
  v_html := v_html || HTF.TABLEROWCLOSE;
  s_html := s_html || HTF.TABLEOPEN('border="1px"');
  s_html := s_html || HTF.TABLEROWOPEN;
  s_html := s_html || HTF.TABLEHEADER('NUMBER.DATA');
  s_html := s_html || HTF.TABLEROWCLOSE;
FOR i IN (SELECT * FROM first_table) LOOP
    v_html := v_html || HTF.TABLEROWOPEN;
    v_html := v_html || HTF.TABLEDATA(i.id||'.'||i.data);
    v_html := v_html || HTF.TABLEROWCLOSE;
END LOOP;
FOR i IN (SELECT * FROM second_table) LOOP
    s_html := s_html || HTF.TABLEROWOPEN;
    s_html := s_html || HTF.TABLEDATA(i.no||'.'||i.data);
    s_html := s_html || HTF.TABLEROWCLOSE;
END LOOP;
v_html := v_html || HTF.TABLECLOSE;
s_html := s_html || HTF.TABLECLOsE;

DBMS_OUTPUT.PUT_LINE(v_html);
DBMS_OUTPUT.PUT_LINE(s_html);

结束;

我使用这段代码,结果就是这样;

代码语言:javascript
复制
ID.DATA
101.numberone
202.numbertwo
NUMBER.DATA
5369277635.phoneone
6362190876.phonetwo

然而我想看到的是喜欢;

代码语言:javascript
复制
ID.DATA
101.numberone
NUMBER.DATA
5369277635.phoneone
ID.DATA
202.numbertwo
NUMBER.DATA
6362190876.phonetwo

有没有可能一列一列地分开?

EN

回答 1

Stack Overflow用户

发布于 2018-07-23 19:32:11

这些表真的是无关的吗?我认为--在现实生活中--它们之间应该有联系。如果是这样,您将使用嵌套的FOR循环,如下所示:

代码语言:javascript
复制
   FOR i IN (SELECT * FROM first_table)
   LOOP
      v_html := v_html || HTF.TABLEROWOPEN;
      v_html := v_html || HTF.TABLEDATA (i.ID || '.' || i.DATA);
      v_html := v_html || HTF.TABLEROWCLOSE;

      FOR j IN (SELECT *
                  FROM second_table s
                 WHERE s.ID = i.ID --> you'd add such a condition, to join those tables
               )
      LOOP
         s_html := s_html || HTF.TABLEROWOPEN;
         s_html := s_html || HTF.TABLEDATA (j.NO || '.' || j.DATA);
         s_html := s_html || HTF.TABLEROWCLOSE;
      END LOOP;
   END LOOP;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51476767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档