微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Powershell以表格式显示DB值-sqlplus命令

如何解决使用Powershell以表格式显示DB值-sqlplus命令

我需要编写一个查询以使用PowerShell脚本(sqlplus命令)以表格格式显示数据库中的多行。

数据库:Oracle 12c

我在下面的查询中编写了代码,但是它返回单行值。 谁能帮助我获取所有数据?我没有得到如何实现for循环访问所有行的方法

期望输出

enter image description here

脚本

$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 举报,一经查实,本站将立刻删除。