如何解决使用Powershell以表格式显示DB值-sqlplus命令
我需要编写一个查询以使用PowerShell脚本(sqlplus命令)以表格格式显示数据库中的多行。
数据库:Oracle 12c
我在下面的查询中编写了代码,但是它返回单行值。 谁能帮助我获取所有数据?我没有得到如何实现for循环访问所有行的方法。
期望输出:
脚本:
$username='root'
$password='password'
$tnsalias='localhost:1521/xe'
$sql1=@"
set echo off;
set pagesize 0
set head off;
set Feedback off;
set pause off;
set verify off;
set trimspool on;
set linesize 300;
set colsep,;
set termout off;
SELECT * FROM employees where dept_id =30;
"@
$output1 = $sql1 |sqlplus -silent $username/$password@$tnsalias
$output2 =$output1.Split(",")
$eid=$output2[0]
$first_nm=$output2[1]
$middl_nm=$output2[2]
$last_nm=$output2[3]
$sal= $output2[4]
$HtmlTable3 += "<tr style='font-size:13px;background-color:#FFFFFF'>
<td>"+ $eid +"</td>
<td>" + $first_nm + "</td>
<td>"+ $middl_nm +"</td>
<td>"+ $last_nm+"</td>
<td>"+ $sal +"</td>
</tr> "
$HtmlTable3 +="</table> </div>"
write-host $HtmlTable3
解决方法
将HTML标记转换为SQL的方式-
$username='scott'
$password='tiger'
$tnsalias='foo:12102/DB1212'
$sql1=@"
set echo off;
set pagesize 0
set head off;
set feedback off;
set pause off;
set verify off;
set trimspool on;
set linesize 300;
set colsep,;
set termout off;
SELECT
'<tr style="font-size:13px;background-color:#FFFFFF">'||
'<td>'||empno||'</td>'
||'<td>'||ename||'</td>'
||'<td>'||job||'</td>'
||'<td>'||mgr||'</td>'
||'<td>'||hiredate||'</td>'
||'<td>'||sal||'</td>'
||'<td>'||comm||'</td>'
||'<td>'||deptno||'</td>'
||'</tr>'
FROM EMP where DEPTNO=30;
"@
$output1 = $sql1 |sqlplus -silent $username/$password@$tnsalias
$HtmlTable3 += "<table>"
$HtmlTable3 += $output1
$HtmlTable3 += "</table>"
write-host $HtmlTable3
返回
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DEC-81 950 30
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。