de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 djangofan
djangofan
質問

Javaスキーマを使用して、なぜ私のデータベースのすべてのテーブルをスキャンしていますか?

Java schemacrawler を使用すると、データベースのすべてのテーブルをスキャンするのはなぜですか?コマンドラインで指定したデータベースをスキャンするだけではならない: -database = openfire ???

:: schemacrawler batch launcher
@echo off
C:\JDK\bin\java.exe -classpath jtds-1.2.4.jar;schemacrawler-8.8.jar; \
schemacrawler-sqlserver-8.8.jar schemacrawler.tools.sqlserver.Main \
-user=sa -password=password -database=openfire -port=1433 -host=localhost \
-table_types=TABLE -command=schema -schemas=.*\.dbo.* -infolevel=standard \
-loglevel=FINE
1 2011-10-27T23:01:22+00:00 1
Sualeh Fatehi
Sualeh Fatehi
編集された質問 1日 11月 2013 в 5:36
プログラミング
java
database
schema
schemacrawler
djangofan
28日 10月 2011 в 12:03
2011-10-28T00:03:48+00:00
さらに
ソース
編集
#56793879

わかった、私はそれを理解した。 -databaseフラグはSQLドライバに接続パスのみを与え、データベース名のフィルタには影響しません。言い換えると:

-database=openfire  DOES NOT EQUAL  -schemas=openfire.dbo.*

だから答えは:

:: schemacrawler batch launcher
@echo off
C:\JDK\bin\java.exe -classpath jtds-1.2.4.jar;schemacrawler-8.8.jar; \
schemacrawler-sqlserver-8.8.jar schemacrawler.tools.sqlserver.Main \
-user=sa -password=password -database=openfire -schemas=openfire.dbo.* \
-port=1433 -host=localhost -table_types=TABLE -command=schema \
-infolevel=standard -loglevel=FINE

私の完成したバッチスクリプト:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
:: first get timestamp of this script
SETLOCAL
FOR /F "skip=1 tokens=2-4 delims=(-)" %%a IN ('"echo.|date"') DO (
    FOR /F "tokens=1-3 delims=/.- " %%A IN ("%DATE:* =%") DO (
        SET %%a=%%A&SET %%b=%%B&SET %%c=%%C))
SET /A "yy=10000%yy% %%10000,mm=100%mm% %% 100,dd=100%dd% %% 100"
FOR /F "tokens=1-4 delims=:. " %%A IN ("%time: =0%") DO @SET \
UNIQUE=%yy%%mm%%dd%-%%A%%B

SET TITLE=Schema Crawler
TITLE=%TITLE%
:: supports DBNAME as argument
IF NOT "%1"=="" (
  SET DBNAME=%1
  C:\JDK\bin\java.exe -classpath jtds-1.2.4.jar;schemacrawler-8.8.jar; \
  schemacrawler-sqlserver-8.8.jar schemacrawler.tools.sqlserver.Main -user=sa \
  -password=password -database=!DBNAME! -schemas=!DBNAME!.dbo.* -port=1433 \
  -host=localhost -table_types=TABLE -command=schema -procedures= \
  -infolevel=lint -loglevel=OFF > !DBNAME!_schema_!UNIQUE!.txt
  GOTO :END
)

:: run minimized
::IF NOT DEFINED PIL (
::    SET PIL=1
 ::   START /MIN "" %~0 %1
 ::   EXIT /B
::)

:: script start
ECHO Working...
OSQL.exe -E -Slocalhost -h-1 -Q"SET NOCOUNT ON;SELECT LTRIM(RTRIM(name)) \
FROM sysdatabases WHERE name NOT IN ('master','tempdb','model','msdb');" \
>dblist.txt
FOR /F "tokens=* delims= " %%I IN (dblist.txt) DO (
  IF NOT "%%I"=="                                                      " (
    SET DBNAME=%%I
    SET DBNAME=!DBNAME: =!
    ECHO !DBNAME!
    C:\JDK\bin\java.exe -classpath jtds-1.2.4.jar;schemacrawler-8.8.jar; \
  schemacrawler-sqlserver-8.8.jar schemacrawler.tools.sqlserver.Main -user=sa \
  -password=password -database=!DBNAME! -schemas=!DBNAME!.dbo.* -port=1433 \
  -host=localhost -table_types=TABLE -command=schema -procedures= \
  -infolevel=lint -loglevel=OFF > !DBNAME!_schema_!UNIQUE!.txt
  )
)
DEL /Q dblist.txt
GOTO :EXIT

:END
ECHO Finished processing %1 .  Closing in 20 seconds...
ECHO.
FOR /l %%a in (20,-1,1) do (TITLE %TITLE% -- closing in %%as&ping \
-n 2 -w 1 127.0.0.1>NUL)

:EXIT
EXIT
5
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Денис Анненский
登録済み 1日前
2
365
登録済み 5日前
3
True Image
登録済み 6日前
4
archana agarwal
登録済み 1週間前
5
Maxim Zhilyaev
登録済み 1週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属