用sh列表顯示oracle資料庫單條查詢結果(轉)
用sh列表顯示oracle資料庫單條查詢結果(轉)[@more@]經常在UNIX下使用oracle資料庫,用的是sqlplus,大體已經習慣了.但是有一點受不了,就是用select查詢一個大表(欄位比較多的表) 時,雖然查的結果只有一行,但要是set head on,往往要顯示幾屏,每一屏都要顯示一遍所有欄位,根本看不清整個表的內容,如果 set head off,又不知道每個值對應的是哪個欄位,一個一個數太麻煩了.總想,要是這條資料縱向列表顯示,左邊列名,右邊是值,看著該多方便啊,於是花了點寫了一個shell程式,程式名就叫select.#!/bin/shconnectstr='username/password@connectstr'table=`echo $*|sed 's/.*from *([^ ]*) *.*/1/'|tr "[a-z]" "[A-Z]"`where=`echo $*|sed 's/.*from/from/'`cat > sel$$.sql << ENDset head offset feed offset headsep offset newp noneset linesize 255set sqlblanklines OFFset trimspool ONset termout offspool on$$.sqlselect 'select '''||column_name||'|'',ltrim(rtrim('||column_name||')) $where;' from user_tab_columns where table_name='$table';spool offset termout onselect '##SQL BEGIN##' from dual;select 'ColumnName| Value' from dual;select '-----------| ------------' from dual;@@on$$.sqlselect '##SQL END##' from dual;exitENDsqlplus $connectstr @sel$$.sql|sed -n '/##SQL BEGIN##/,/##SQL END/{/^$/d/##SQL/dp}'|awk -F'|' '{printf "%-30s%-s
",$1,$2}'rm -f on$$.sql sel$$.sql哈哈,使用的時候跟在sqlplus狀態下一樣的語句,瞧,這是我在sh狀態下查詢一個有26個欄位的表,要是在sqlplus狀態下用 set head on狀態,得顯示個幾十屏的內容.當我在UNIX sh狀態下用這個sql語句時,旁邊的同事都呆住了,沒搞清怎麼回事.(為隱密起見,欄位名用了X和亂符表示)$ select * from testtable;ColumnName Value----------- ------------XXXX_ID 2XXXXON_ID 3XXXXXXXX_SUBS 2XXXXTE_TIME 20020320173232XXXXTOR 0XXXXTOR_GROUP 0XXXXNAME XXXXXXXX_BIRTHDAY_TIME XXXXXXXX_MODIFY_TIME 20020320173232XXXXXXXX_OLDNO XXXXFIER 0XXXXFIER_NAME AdminXXXXFIER_LOGIN superXXXXOPERTYPE 0XXXXXXXX_CHARGE_NO XXXXXXXX_BANK XXXXXXXX_BANK_NO XXXXXXXX_NET_USE 0XXXXXXXX_ATTRIBUTE 1XXXXUP1 0XXXXUP2 NetXXXXXXXX_BUSINESS 99XXXXXXXX_SEX 0XXXXXXXX_CREDIT_THRESHOLD 0XXXXXXXX_CREDIT_FLOOR 0XXXXXXXX_ID 11XXXXXXXX_NAME USERXXXXXXXX_PASSWORD xxxc6xxx2ab461b4XXXXXXXX_IDENTITY XXXXXXXX_IDTYPE 0XXXXXXXX_VOCATION XXXXXXXX_CITY XXXXXXXX_PROVINCE 13900000005XXXXXXXX_COUNTRY XXXXXXXX_ZIP_CODE XXXXXXXX_PHONE 01062501658XXXXXXXX_FAX XXXXXXXX_EMAIL user@263.netXXXXXXXX_STATUS 0XXXXXXXX_STATUS_TIME 20020320173231XXXXXXXX_STATUS_COMMENT XXXXXXXX_XXXOUNT_CXXLE 14XXXXXXXX_PAY_TYPE 1XXXXXXXX_NO AN20000013XXXXXXXX_ACCOUNT_NO 11XXXXXXXX_XXXXING_CYCLE XXXXXXXX_XXXXING_AMOUNT XXXXXXXX_XXXXING_EAMOUNT XXXXXXXX_PAY_TIME XXXXXXXX_OWE_XXXXE 0XXXXXXXX_PRE_XXXXK_DATE XXXXENCY_TYPE 0XXXXXXXX_PARENT 0XXXXXXXX_BANKNAME XXXXXXXX_BANKNUM XXXXXXXX_LINKMAN 99098808XXXXICE_DELIVER_METHOD 1XXXXXXXX_TYPE 0XXXXXXXX_NUMBER CDT_XXXX_HOLDER CDT_XXXX_EXPIRY 20020320000000XXXXXNT_TYPE 0XXXXXXXX_GRADE 5XXXXRTISE_FLAG 0XXXXODE_ID 0XXXXS_ID 0XXXXLLER_ID 0XXXX_NAME AdminXXXX_LOGIN_NAME superACYSEW_DATE 2004121400000
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944856/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何分頁顯示資料庫查詢結果?資料庫
- Laravel 關聯查詢限制條數和分組查詢顯示為零的結果Laravel
- ES查詢之查詢屬性過濾、結果高亮顯示
- C# dataGridView展示資料庫查詢結果C#View資料庫
- Oracle查詢前100萬條資料Oracle
- MySQL 查詢結果以百分比顯示簡單實現MySql
- 20240719資料庫關聯查詢、條件查詢資料庫
- 【YashanDB資料庫】yasboot查詢資料庫狀態時顯示資料庫狀態為off資料庫boot
- 資料庫基礎查詢--單表查詢資料庫
- VS2015 查詢結果明細沒顯示問題
- Oracle資料庫的查詢變慢了Oracle資料庫
- mysql根據查詢結果批量更新多條資料(插入或更新)MySql
- 資料庫中單表查詢資料庫
- laravel with 查詢列表限制條數Laravel
- AntDesignBlazor示例——列表查詢條件Blazor
- Oracle資料庫中的分頁查詢Oracle資料庫
- 教你用一條SQL搞定跨資料庫查詢難題SQL資料庫
- SQL Server 查詢資料庫中所有表資料條數SQLServer資料庫
- 【記錄】sqlserver列轉行查詢 並將查詢結果用逗號分隔開SQLServer
- 小技巧:顯示資料庫查詢耗時,改善開發者習慣資料庫
- 關於Oracle資料庫的時間查詢Oracle資料庫
- ORACLE遞迴查詢(適用於ID,PARENTID結構資料表)Oracle遞迴
- Excel資料庫轉MySQL,實現查詢Excel資料庫MySql
- Oracle 查詢轉換Oracle
- oracle資料庫sql查詢檢視第二次查詢很慢Oracle資料庫SQL
- Java資料庫分表與多執行緒查詢結果彙總Java資料庫執行緒
- mybatis查詢mysql 資料庫中 BLOB欄位,結果出現亂碼MyBatisMySql資料庫
- MySQL - 資料查詢 - 簡單查詢MySql
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- 概括SQL Server實時查詢Oracle資料庫WSSQLServerOracle資料庫
- Oracle 查詢多個資料Oracle
- 使用navicat匯出查詢大量資料結果集並匯入到其他資料庫(mysql)資料庫MySql
- 一條SQL完成跨資料庫例項Join查詢SQL資料庫
- langchain_chatchat+ollama部署本地知識庫,聯網查詢以及對資料庫(Oracle)資料進行查詢LangChain資料庫Oracle
- pubkey/rxdb:一個可以訂閱查詢結果的反應式資料庫資料庫
- 資料庫高階查詢之子查詢資料庫
- 判斷 Eloqument 模型查詢資料結果是否為空模型
- Jemter查詢資料庫資料庫
- 求助:資料庫查詢資料庫