2015-12-24 14 views
0

舉個例子通俗易懂,下面是我想要做什麼(不使用SQL 加): 在SQL加:甲骨文導致類似於SQL的HTML設置* Plus中(使用SQL只)

SQL> set feed off markup html on 
SQL> select * from emp where rownum<=2; 

給出了這樣的輸出:

<p> 
<table border="1" width="90%" summary="Script output"> 
<tr> 
<th scope="col"> 
EMPNO 
</th> 
<th scope="col"> 
ENAME 
</th> 
<th scope="col"> 
JOB 
</th> 
<th scope="col"> 
MGR 
</th> 
<th scope="col"> 
HIREDATE 
</th> 
<th scope="col"> 
SAL 
</th> 
<th scope="col"> 
COMM 
</th> 
<th scope="col"> 
DEPTNO 
</th> 
</tr> 
<tr> 
<td align="right"> 
     7369 
</td> 
<td> 
SMITH 
</td> 
<td> 
CLERK 
</td> 
<td align="right"> 
     7902 
</td> 
<td> 
17-DEC-80 
</td> 
<td align="right"> 
     800 
</td> 
<td align="right"> 
&nbsp; 
</td> 
<td align="right"> 
     20 
</td> 
</tr> 
<tr> 
<td align="right"> 
     7499 
</td> 
<td> 
ALLEN 
</td> 
<td> 
SALESMAN 
</td> 
<td align="right"> 
     7698 
</td> 
<td> 
20-FEB-81 
</td> 
<td align="right"> 
     1600 
</td> 
<td align="right"> 
     300 
</td> 
<td align="right"> 
     30 
</td> 
</tr> 
</table> 
<p> 

有沒有一種簡單的方法只在SQL做到這一點? (例如,使用一個或多個Oracle的XML功能)。任何指針將是最受歡迎的。

編輯: 要澄清一點,我不關心空白或p/table標記,且每個標籤的屬性,只是結構化的HTML。

+0

你可以使用PLSQL嗎? –

+0

您可以嘗試使用UTL_FILE等軟件包對其進行封裝並寫入文件。您仍然需要某種存儲過程,它將從您的非SQLPLUS客戶端執行。 – vmachan

+0

只需連接你的select語句中的所有html標籤。儘管如此,它會很長很醜。 – OldProgrammer

回答

2

SQL Fiddle

的Oracle 11g R2架構設置

CREATE TABLE EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) AS 
SELECT 7369, 'Smith', 'Clerk', 7902, DATE '1980-12-17', 800, CAST(NULL AS NUMBER(5,2)), 20 FROM DUAL UNION ALL 
SELECT 7499, 'Allen', 'Salesman', 7698, DATE '1981-02-20', 1600, 300, 30 FROM DUAL 

查詢1

SELECT XMLElement(
     "p", 
     XMLElement(
      "table", 
      XMLElement("tr", 
      XMLForest(
       'empno' AS "th", 
       'ename' AS "th", 
       'job'  AS "th", 
       'mgr'  AS "th", 
       'hiredate' AS "th", 
       'sal'  AS "th", 
       'comm'  AS "th", 
       'deptno' AS "th" 
      ) 
      ), 
      XMLAgg(
      XMLElement("tr", 
       XMLForest(
       empno AS "td", 
       ename AS "td", 
       job  AS "td", 
       mgr  AS "td", 
       hiredate AS "td", 
       sal  AS "td", 
       comm  AS "td", 
       deptno AS "td" 
       ) 
      ) 
      ) 
     ) 
     ).getClobVal() AS XML 
FROM EMP 

Results

|                                                                                           XML | 
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 
| <p><table><tr><th>empno</th><th>ename</th><th>job</th><th>mgr</th><th>hiredate</th><th>sal</th><th>comm</th><th>deptno</th></tr><tr><td>7369</td><td>Smith</td><td>Clerk</td><td>7902</td><td>1980-12-17</td><td>800</td><td>20</td></tr><tr><td>7499</td><td>Allen</td><td>Salesman</td><td>7698</td><td>1981-02-20</td><td>1600</td><td>300</td><td>30</td></tr></table></p> | 
+0

你釘了它。謝謝。 – toddlermenot