日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SybaseASE15中bcp實(shí)現(xiàn)有條件的導(dǎo)出表內(nèi)數(shù)據(jù)

Sybase ASE15.0之前的版本中利用bcp這個(gè)實(shí)用程序只能夠?qū)С稣砘蛞晥D的數(shù)據(jù)。要想利用bcp有條件得導(dǎo)出表內(nèi)數(shù)據(jù),只能根據(jù)條件建立視圖,然后再導(dǎo)出該視圖的數(shù)據(jù);或者根據(jù)條件建立臨時(shí)表,再導(dǎo)出臨時(shí)表的數(shù)據(jù)。但是,都必須在執(zhí)行bcp命令之前到數(shù)據(jù)庫內(nèi)部去創(chuàng)建對象(視圖或者臨時(shí)表),然后再執(zhí)行bcp命令導(dǎo)出視圖或者臨時(shí)表數(shù)據(jù)。顯然,不是太方便。而其它的數(shù)據(jù)庫管理系統(tǒng),比如sqlserver早在sqlserver2000就實(shí)現(xiàn)了根據(jù)條件queryout數(shù)據(jù)的功能。利用sybase ASE的第三方工具按條件導(dǎo)出數(shù)據(jù)也是一種辦法。

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計(jì),拉孜網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:拉孜等地區(qū)。拉孜做網(wǎng)站價(jià)格咨詢:18980820575

在Sybase ASE 15.0及以后版本中,sybase終于提供了按照條件導(dǎo)出表內(nèi)數(shù)據(jù)的辦法,雖然實(shí)現(xiàn)起來還稍微有一點(diǎn)點(diǎn)小麻煩,但是終究是有這個(gè)功能了。參數(shù):--initstring 就是為實(shí)現(xiàn)這個(gè)功能而加的。

關(guān)于參數(shù):--initstring的注意事項(xiàng)有:

1.  參數(shù)--initstring之后的SQL語句會在數(shù)據(jù)導(dǎo)出之前被發(fā)送到ASE引擎;

2.  參數(shù)--initstring之后的SQL語句被當(dāng)做會話級別的SQL語句一樣處理;

3.  參數(shù)--initstring之后的SQL語句在整個(gè)bcp導(dǎo)出數(shù)據(jù)會話期間始終有效;

4.  真正導(dǎo)出的數(shù)據(jù)是關(guān)鍵字bcp和out之間的表的數(shù)據(jù),而不是參數(shù)--initstring中select列表的數(shù)據(jù)。

下面開始舉幾個(gè)例子:

bcp導(dǎo)出的是關(guān)鍵字bcp和out之間的表的數(shù)據(jù),而不是--initstring中select列表的內(nèi)容

bcp master..sysobjects out sysobjects.txt --initstring "select id,name,type from master..sysobjects where type='U' " -c -Usa -P -Stest

 
 
 
  1. C:\Documents and Settings\Administrator>bcp master..sysobjects out sysobjects.tx   
  2. t --initstring "select id,name,type from master..sysobjects where type='U' " -c   
  3. -Usa -P -Stest   
  4. Starting copy...   
  5. 163 rows copied.   
  6. Clock Time (ms.): total = 16  Avg = 0 (10187.50 rows per sec.)   
  7. C:\Documents and Settings\Administrator>more sysobjects.txt   
  8. sysobjects      1       1       S       0       97      1       0       229376   
  9. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  10. 0       0       0       0       0       0                               1   
  11. 0000000000000000   
  12. sysindexes      2       1       S       0       97      0       0       229376   
  13. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  14. 0       0       0       0       0       0                               1   
  15. 0000000000000000   
  16. syscolumns      3       1       S       0       97      0       0       229376   
  17. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  18. 0       0       0       0       0       0                               1   
  19. 0000000000000000   
  20. systypes        4       1       S       0       97      1       0       229376   
  21. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  22. 0       0       0       0       0       0                               1   
  23. 0000000000000000   
  24. syslogs 8       1       S       0       1       0       0       73728   Dec  2 2   
  25. 009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0       0   
  26. 0       0       0       0       0   
  27. syspartitions   28      1       S       0       97      2       0       229376   
  28. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  29. 0       0       0       0       0       0                               1   
  30. 0000000000000000   
  31. sysgams 14      1       S       0       1       0       0       73728   Dec  2 2   
  32. 009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0       0   
  33. 0       0       0       0       0   
  34. systabstats     23      1       S       0       97      1       0       229888   
  35. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  36. 0       0       0       0       0       0                               1   
  37. 0000000000000000   
  38. sysusages       31      1       S       0       97      2       0       229376   
  39. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  40. 0       0       0       0       0       0                               1   
  41. 0000000000000000   
  42. sysdatabases    30      1       S       0       97      2       0       229376   
  43. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  44. 0       0       0       0       0       0                               1   
  45. 0000000000000000   
  46. sysdevices      35      1       S       0       97      1       0       229376   
  47. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0   
  48. 0       0       0       0       0       0                               1   
  49. 0000000000000000   
  50. ^C   
  51. C:\Documents and Settings\Administrator>  
  52. C:\Documents and Settings\Administrator>bcp master..sysobjects out sysobjects.tx
  53. t --initstring "select id,name,type from master..sysobjects where type='U' " -c
  54. -Usa -P -Stest
  55. Starting copy...
  56. 163 rows copied.
  57. Clock Time (ms.): total = 16  Avg = 0 (10187.50 rows per sec.)
  58. C:\Documents and Settings\Administrator>more sysobjects.txt
  59. sysobjects      1       1       S       0       97      1       0       229376
  60. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  61. 0       0       0       0       0       0                               1
  62. 0000000000000000
  63. sysindexes      2       1       S       0       97      0       0       229376
  64. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  65. 0       0       0       0       0       0                               1
  66. 0000000000000000
  67. syscolumns      3       1       S       0       97      0       0       229376
  68. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  69. 0       0       0       0       0       0                               1
  70. 0000000000000000
  71. systypes        4       1       S       0       97      1       0       229376
  72. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  73. 0       0       0       0       0       0                               1
  74. 0000000000000000
  75. syslogs 8       1       S       0       1       0       0       73728   Dec  2 2
  76. 009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0       0
  77. 0       0       0       0       0
  78. syspartitions   28      1       S       0       97      2       0       229376
  79. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  80. 0       0       0       0       0       0                               1
  81. 0000000000000000
  82. sysgams 14      1       S       0       1       0       0       73728   Dec  2 2
  83. 009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0       0
  84. 0       0       0       0       0
  85. systabstats     23      1       S       0       97      1       0       229888
  86. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  87. 0       0       0       0       0       0                               1
  88. 0000000000000000
  89. sysusages       31      1       S       0       97      2       0       229376
  90. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  91. 0       0       0       0       0       0                               1
  92. 0000000000000000
  93. sysdatabases    30      1       S       0       97      2       0       229376
  94. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  95. 0       0       0       0       0       0                               1
  96. 0000000000000000
  97. sysdevices      35      1       S       0       97      1       0       229376
  98. Dec  2 2009  6:58:34:590PM      Dec  2 2009  6:58:34:590PM      0       0
  99. 0       0       0       0       0       0                               1
  100. 0000000000000000
  101. ^C
  102. C:\Documents and Settings\Administrator> 

上面的這個(gè)例子中,sql語句select id,name,type from master..sysobjects where type='U' 雖然被執(zhí)行了, 但是并沒有被反映到導(dǎo)出的結(jié)果中。

想導(dǎo)出sysobjects表中用戶表的id和name兩列數(shù)據(jù),可以利用臨時(shí)表和視圖來實(shí)現(xiàn)。但是這和ase15以前版本中的臨時(shí)表和視圖還是不一樣的。ase15之前版本中臨時(shí)表或者視圖是顯示創(chuàng)建的,而在ase15及后續(xù)版本中可以利用隱式創(chuàng)建的臨時(shí)表或者視圖來實(shí)現(xiàn)根據(jù)條件導(dǎo)出數(shù)據(jù)的要求。

方法一: 利用隱式創(chuàng)建的臨時(shí)表來由條件導(dǎo)出數(shù)據(jù)

要求是:導(dǎo)出sysobjects表中用戶表的id和name兩列數(shù)據(jù)。bcp命令語句如下:

 
 
 
  1. bcp #temptbl out sysobjects_id_name.txt
  2. --initstring "select id,name into #temptbl
  3. from sysobjects where type='U' order by name "  -c -Usa -P -Stest

效果如下:

 
 
 
  1. C:\Documents and Settings\Administrator>bcp #temptbl out sysobjects_id_name.txt   
  2. --initstring "select id,name into #temptbl from sysobjects where type='U' order   
  3. by name "  -c -Usa -P -Stest   
  4. Starting copy...   
  5. 87 rows copied.   
  6. Clock Time (ms.): total = 16  Avg = 0 (5437.50 rows per sec.)   
  7. C:\Documents and Settings\Administrator>more sysobject_id_name.txt   
  8. 233048835       HP_PAGENO_RANGE   
  9. 1065051799      IVCMPLX   
  10. 553049975       IVCON   
  11. 601050146       IVCPROP   
  12. 425049519       IVONEROW   
  13. 793050830       IVPARAM   
  14. 377049348       IVSCHM   
  15. 457049633       IVSCON   
  16. 937051343       IVSHARE   
  17. 889051172       IVSPROC   
  18. 649050317       IVSPROP   
  19. 1033051685      IVSRVR   
  20. 505049804       IVSSYN   
  21. 985051514       IVSTAT   
  22. 841051001       IVSTR   
  23. 697050488       IVSVIEW   
  24. 745050659       IVVCOL   
  25. 121048436       errorlog   
  26. 1337052768      ijdbc_function_escapes   
  27. 1093575903      jdbc_function_escapes   
  28. 265048949       lzflzf   
  29. 21572084        monCachePool   
  30. 2137055618      monCachedObject   
  31. 533573908       monCachedProcedures   
  32. 725574592       monCachedStatement   
  33. 1753054250      monDataCache   
  34. 2041055276      monDeadLock   
  35. 117572426       monDeviceIO   
  36. 1721054136      monEngine   
  37. 1977055048      monErrorLog   
  38. 85572312        monIOQueue   
  39. 661574364       monLicense   
  40. 2009055162      monLocks   
  41. 1945054934      monNetworkIO   
  42. 1881054706      monOpenDatabases   
  43. 53572198        monOpenObjectActivity   
  44. 629574250       monOpenPartitionActivity   
  45. 757574706       monPCIBridge   
  46. 821574934       monPCIEngine   
  47. 789574820       monPCISlots   
  48. 1785054364      monProcedureCache   
  49. 1817054478      monProcedureCacheMemoryUsage   
  50. ^C   
  51. C:\Documents and Settings\Administrator>  
  52. C:\Documents and Settings\Administrator>bcp #temptbl out sysobjects_id_name.txt
  53. --initstring "select id,name into #temptbl from sysobjects where type='U' order
  54. by name "  -c -Usa -P -Stest
  55. Starting copy...
  56. 87 rows copied.
  57. Clock Time (ms.): total = 16  Avg = 0 (5437.50 rows per sec.)
  58. C:\Documents and Settings\Administrator>more sysobject_id_name.txt
  59. 233048835       HP_PAGENO_RANGE
  60. 1065051799      IVCMPLX
  61. 553049975       IVCON
  62. 601050146       IVCPROP
  63. 425049519       IVONEROW
  64. 793050830       IVPARAM
  65. 377049348       IVSCHM
  66. 457049633       IVSCON
  67. 937051343       IVSHARE
  68. 889051172       IVSPROC
  69. 649050317       IVSPROP
  70. 1033051685      IVSRVR
  71. 505049804       IVSSYN
  72. 985051514       IVSTAT
  73. 841051001       IVSTR
  74. 697050488       IVSVIEW
  75. 745050659       IVVCOL
  76. 121048436       errorlog
  77. 1337052768      ijdbc_function_escapes
  78. 1093575903      jdbc_function_escapes
  79. 265048949       lzflzf
  80. 21572084        monCachePool
  81. 2137055618      monCachedObject
  82. 533573908       monCachedProcedures
  83. 725574592       monCachedStatement
  84. 1753054250      monDataCache
  85. 2041055276      monDeadLock
  86. 117572426       monDeviceIO
  87. 1721054136      monEngine
  88. 1977055048      monErrorLog
  89. 85572312        monIOQueue
  90. 661574364       monLicense
  91. 2009055162      monLocks
  92. 1945054934      monNetworkIO
  93. 1881054706      monOpenDatabases
  94. 53572198        monOpenObjectActivity
  95. 629574250       monOpenPartitionActivity
  96. 757574706       monPCIBridge
  97. 821574934       monPCIEngine
  98. 789574820       monPCISlots
  99. 1785054364      monProcedureCache
  100. 1817054478      monProcedureCacheMemoryUsage
  101. ^C
  102. C:\Documents and Settings\Administrator>

方法二: 利用隱式創(chuàng)建的視圖來由條件導(dǎo)出數(shù)據(jù)

 
 
 
  1. bcp master..V_sysobjects_id_name out V_sysobjects_id_name.txt 
  2. --initstring " create view V_sysobjects_id_name as 
  3. select id,name from sysobjects where type='U' " -c -Usa -P -Stest

效果如下:

 
 
 
  1. C:\Documents and Settings\Administrator>bcp master..V_sysobjects_id_name out V_s   
  2. ysobjects_id_name.txt --initstring " create view V_sysobjects_id_name as select   
  3. id,name from sysobjects where type='U'" -c -Usa -P -Stest   
  4. Starting copy...   
  5. 87 rows copied.   
  6. Clock Time (ms.): total = 16  Avg = 0 (5437.50 rows per sec.)   
  7. C:\Documents and Settings\Administrator>more V_sysobjects_id_name.txt   
  8. 1097051913      spt_values   
  9. 1129052027      spt_monitor   
  10. 1177052198      spt_limit_types   
  11. 1088003876      syblicenseslog   
  12. 1225052369      spt_ijdbc_table_types   
  13. 1257052483      spt_ijdbc_mda   
  14. 1305052654      spt_ijdbc_conversion   
  15. 1337052768      ijdbc_function_escapes   
  16. 1593053680      monTables   
  17. 1625053794      monTableParameters   
  18. 1657053908      monTableColumns   
  19. 1689054022      monState   
  20. 1721054136      monEngine   
  21. 1753054250      monDataCache   
  22. 1785054364      monProcedureCache   
  23. 1817054478      monProcedureCacheMemoryUsage   
  24. 1849054592      monProcedureCacheModuleUsage   
  25. 1881054706      monOpenDatabases   
  26. 1913054820      monSysWorkerThread   
  27. 1945054934      monNetworkIO   
  28. 1977055048      monErrorLog   
  29. 2009055162      monLocks   
  30. 2041055276      monDeadLock   
  31. 2073055390      monWaitClassInfo   
  32. 2105055504      monWaitEventInfo   
  33. 2137055618      monCachedObject   
  34. 21572084        monCachePool   
  35. 53572198        monOpenObjectActivity   
  36. 85572312        monIOQueue   
  37. 117572426       monDeviceIO   
  38. 149572540       monSysWaits   
  39. 181572654       monProcess   
  40. 213572768       monProcessLookup   
  41. 245572882       monProcessActivity   
  42. 277572996       monProcessWorkerThread   
  43. 309573110       monProcessNetIO   
  44. 341573224       monProcessObject   
  45. 373573338       monProcessWaits   
  46. 405573452       monProcessStatement   
  47. 437573566       monSysStatement   
  48. 469573680       monProcessSQLText   
  49. 501573794       monSysSQLText   
  50. ^C   
  51. C:\Documents and Settings\Administrator>  
  52. C:\Documents and Settings\Administrator>bcp master..V_sysobjects_id_name out V_s
  53. ysobjects_id_name.txt --initstring " create view V_sysobjects_id_name as select
  54. id,name from sysobjects where type='U'" -c -Usa -P -Stest
  55. Starting copy...
  56. 87 rows copied.
  57. Clock Time (ms.): total = 16  Avg = 0 (5437.50 rows per sec.)
  58. C:\Documents and Settings\Administrator>more V_sysobjects_id_name.txt
  59. 1097051913      spt_values
  60. 1129052027      spt_monitor
  61. 1177052198      spt_limit_types
  62. 1088003876      syblicenseslog
  63. 1225052369      spt_ijdbc_table_types
  64. 1257052483      spt_ijdbc_mda
  65. 1305052654      spt_ijdbc_conversion
  66. 1337052768      ijdbc_function_escapes
  67. 1593053680      monTables
  68. 1625053794      monTableParameters
  69. 1657053908      monTableColumns
  70. 1689054022      monState
  71. 1721054136      monEngine
  72. 1753054250      monDataCache
  73. 1785054364      monProcedureCache
  74. 1817054478      monProcedureCacheMemoryUsage
  75. 1849054592      monProcedureCacheModuleUsage
  76. 1881054706      monOpenDatabases
  77. 1913054820      monSysWorkerThread
  78. 1945054934      monNetworkIO
  79. 1977055048      monErrorLog
  80. 2009055162      monLocks
  81. 2041055276      monDeadLock
  82. 2073055390      monWaitClassInfo
  83. 2105055504      monWaitEventInfo
  84. 2137055618      monCachedObject
  85. 21572084        monCachePool
  86. 53572198        monOpenObjectActivity
  87. 85572312        monIOQueue
  88. 117572426       monDeviceIO
  89. 149572540       monSysWaits
  90. 181572654       monProcess
  91. 213572768       monProcessLookup
  92. 245572882       monProcessActivity
  93. 277572996       monProcessWorkerThread
  94. 309573110       monProcessNetIO
  95. 341573224       monProcessObject
  96. 373573338       monProcessWaits
  97. 405573452       monProcessStatement
  98. 437573566       monSysStatement
  99. 469573680       monProcessSQLText
  100. 501573794       monSysSQLText
  101. ^C
  102. C:\Documents and Settings\Administrator>

在--initstring中的sql語句中創(chuàng)建了視圖V_sysobjects_id_name。 我們來看看bcp導(dǎo)出數(shù)據(jù)完成后,該視圖V_sysobjects_id_name還存在否?

 
 
 
  1. 1> use master   
  2. 2> go   
  3. 1> select name from sysobjects where name='V_sysobjects_id_name'  
  4. 2> go   
  5.  name   
  6.  -------------------------------------------------------------------------------   
  7. --------------------------------------------------------------------------------   
  8. --------------------------------------------------------------------------------   
  9. ----------------   
  10.  V_sysobjects_id_name   
  11. (1 row affected)   
  12. 1>  
  13. 1> use master
  14. 2> go
  15. 1> select name from sysobjects where name='V_sysobjects_id_name'
  16. 2> go
  17.  name
  18.  -------------------------------------------------------------------------------
  19. --------------------------------------------------------------------------------
  20. --------------------------------------------------------------------------------
  21. ----------------
  22.  V_sysobjects_id_name
  23. (1 row affected)
  24. 1>

視圖V_sysobjects_id_name仍然是存在的。此種方法和ase12.x中利用顯示創(chuàng)建的視圖導(dǎo)出數(shù)據(jù)的方法比較類似,只不過稍微簡便些罷了。

總結(jié)一下:

1.  ase15.0及后續(xù)版本中實(shí)現(xiàn)了根據(jù)條件導(dǎo)出表的數(shù)據(jù),這點(diǎn)很值得慶幸。

2.  此bcp導(dǎo)出的不是參數(shù)--initstring中sql語句的結(jié)果,而仍然是關(guān)鍵字bcp和out之間的表的數(shù)據(jù)。

3.  增加的參數(shù)--initstring實(shí)際上就是實(shí)現(xiàn)了能夠利用bcp工具向ASE引擎發(fā)送sql命令而已。

4.  參數(shù)--initstring中的sql語句在導(dǎo)出數(shù)據(jù)整個(gè)會話期間有效。所以,導(dǎo)出--initstring中創(chuàng)建的臨時(shí)表是可能的。

5.  歸根結(jié)底,bcp增加的這個(gè)新特性,僅僅是能夠通過bcp向ase引擎發(fā)送sql命令罷了。

作者簡介:andkylee,5年Sybase管理、維護(hù)經(jīng)驗(yàn)?,F(xiàn)任職于北京一IT運(yùn)維管理公司,Sybase DBA。熟悉Sybase的安裝、配置、調(diào)優(yōu)、監(jiān)控與排錯(cuò),尤其精通Sybase數(shù)據(jù)庫的災(zāi)難恢復(fù)。自己深入研究Sybase數(shù)據(jù)庫的內(nèi)部物理存儲結(jié)構(gòu),開發(fā)了能夠從Sybase數(shù)據(jù)庫設(shè)備文件中提取數(shù)據(jù)的工具;還編寫了一個(gè)能夠分析Sybase日志文件內(nèi)容,反解析出相應(yīng)SQL語句的程序??梢蕴峁㏒ybase數(shù)據(jù)庫非常規(guī)恢復(fù)技術(shù)支持。Sybase非常規(guī)數(shù)據(jù)庫恢復(fù)包括:設(shè)備文件故障(如:頁面邏輯損壞,頁面物理損壞等,605、692錯(cuò)誤等等),誤操作(包括:誤更新update,誤刪除drop table,誤清空數(shù)據(jù)truncate table,等)等,本人都有相應(yīng)的處理辦法。

鏈接:http://blog.csdn.net/andkylee/archive/2010/07/11/5726694.aspx


分享題目:SybaseASE15中bcp實(shí)現(xiàn)有條件的導(dǎo)出表內(nèi)數(shù)據(jù)
網(wǎng)頁鏈接:http://m.5511xx.com/article/cdpdeeo.html