この記事は
SQL*PLUSもどきを作る その1(PowerShell Tips)SQL*PLUSもどきを作る その1の説明(PowerShell Tips)SQL*PLUSもどきを作る その2(PowerShell Tips)SQL*PLUSもどきを作る その3(PowerShell Tips) SQL*PLUSもどきを作る その4(PowerShell Tips) SQL*PLUSもどきを作る その5(PowerShell Tips)
の続きです。
今回は、ユーザーが入力したQueryStringを実行し結果を表示する関数 Execute-Query を紹介します。
この関数は、SQL*PLUS同様、複数行にわたるQueryStringを実行し、結果を表示することができます。
ただし、SQL*PLUSのようにいきなりSELECT文を書き始めることはできず、
PS > Execute-Query SELECT文
のように入力する必要があります。
#=========================================================================================# Execute-Query: QueryStringを実行する## UPDATE 2008/04/28 Ver.1.0.0 ## copyright HIRO's.NET(http://hiros-dot.net/)#========================================================================================= function global:Execute-Query { #複数行のQueryStringを受け取る $strSQL = Read-MultiLine #QueryStringを実行する $dtSet = Execute-QueryString $strSQL if ( $dtSet.Tables.Count -gt 0 ) { #format-tableコマンドレットでデータを表示 $dtSet.Tables[0].Rows | format-table } } #エイリアス設定 Set-Alias -name EQS -value Execute-Query -scope "Global"
開発ポイントですが、
複数行の入力を受け取ることができるようにSQL*PLUSもどきを作る その5(PowerShell Tips)で紹介した Read-MultiLine関数を使用しています。
入力を受け取った後は SQL*PLUSもどきを作る その3(PowerShell Tips) で紹介したExecute-QueryString関数を実行し、結果を表示しています。
QueryStringを実行するたびに関数名 Execute-Query と入力するのは面倒なので、エイリアス設定をすることをおすすめします。(今回エイリアス名をEQSとしました)
使用方法および実行結果は下記の通りです。
PS > eqs select * from emp ; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ----- --- --- -------- --- ---- ------ 7369 SMITH CLERK 7902 1980/12/17 ... 800 20 7499 ALLEN SALESMAN 7698 1981/02/20 ... 1600 300 30 7521 WARD SALESMAN 7698 1981/02/22 ... 1250 500 30 7566 JONES MANAGER 7839 1981/04/02 ... 2975 20 7654 MARTIN SALESMAN 7698 1981/09/28 ... 1250 1400 30 7698 BLAKE MANAGER 7839 1981/05/01 ... 2850 30 7782 CLARK MANAGER 7839 1981/06/09 ... 2450 10 7788 SCOTT ANALYST 7566 1987/04/19 ... 3000 20 7839 KING PRESIDENT 1981/11/17 ... 5000 10 7844 TURNER SALESMAN 7698 1981/09/08 ... 1500 0 30 7876 ADAMS CLERK 7788 1987/05/23 ... 1100 20 7900 JAMES CLERK 7698 1981/12/03 ... 950 30 7902 FORD ANALYST 7566 1981/12/03 ... 3000 20 7777 HIRO
PS > eqs select * from emp where JOB='CLERK'; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ----- --- --- -------- --- ---- ------ 7369 SMITH CLERK 7902 1980/12/17 ... 800 20 7876 ADAMS CLERK 7788 1987/05/23 ... 1100 20 7900 JAMES CLERK 7698 1981/12/03 ... 950 30
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail