名前を 'bar'で始まるデータベース内のすべてのテーブルを表示または検索します。それは私がコマンドラインでできることですか?特定の文字で始まるすべてのテーブルを表示します
私はinformixを使用しています。
名前を 'bar'で始まるデータベース内のすべてのテーブルを表示または検索します。それは私がコマンドラインでできることですか?特定の文字で始まるすべてのテーブルを表示します
私はinformixを使用しています。
select tabname from systables where tabname like "%bar%"
が見つかりました!
基本的な回答は、システムカタログ(answer:user856753に示す)に対するクエリです。あなたはInformixデータベースのすべてのタイプに対して作業を確認したい場合、あなたはおそらく使用したい:
dbaccess dbname - <<'EOF'
SELECT TabName FROM informix.SysTables WHERE TabName LIKE 'bar%';
EOF
注意を他の回答では、クエリが名前にbar
のどこが含まれているテーブル名と一致するLIKE '%bar%'
を使用していること、bar
で始まるものだけではありません。 informix.SysTables
を使用すると、dbname
(データベース)がMODE ANSIデータベースの場合でもクエリが機能します。所有者名がないと、照会はユーザーinformix
によって実行された場合にのみモードANSIデータベースに対して機能します。
Informixで配布されているデータベースを照会するための主なコマンドラインツールは、dbaccess
です。最初の引数はデータベース名で、2番目の引数(-
)はスクリプトの名前です(この場合は-
は 'read standard input'を意味します)。<<'EOF'
の表記は 'このコマンドの標準入力ちょうどEOF
を含む行までの行の集合です。 'EOF'
の一重引用符は、入力が呼び出されたときに 'here-document'内のマテリアルに対してシェル拡張を行わないことを意味します。スクリプトがデータベースを選択した場合、データベース名の代わりに-
を使用できます。コマンドラインあなたはこれでdbaccess
から表形式の出力を得るでしょう。あなたがそのようなオプションを指定せずにdbaccess
を実行した場合、それは呪いのような対話モードで実行されます。
。あなたは、しばしば「OUTPUT」コマンドを使用して出力を向上させることができます:
dbaccess dbname - <<'EOF'
OUTPUT TO '/dev/null' WITHOUT HEADINGS
SELECT TabName FROM informix.SysTables WHERE TabName LIKE 'bar%';
EOF