• ベストアンサー

SybaseBcpOut 特定レコード出力

Sybase環境でBCPOUTを行う時に、SQLで言うwhere句を指定して特定のレコードのみファイルに出力できないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#41521
noname#41521
回答No.1

最近のSybaseは分らないのですが、12.0では不可能でした。 tempdbにselect insertで必要なデータをにコピーしてからbcp-outしたり、条件を指定したViewを用意してbcp-outしてます。 (パフォーマンスが良いのは後者です)

teng046
質問者

お礼

ご回答ありがとう御座います。 回答を貰うまでは、ファイル出力後grepで抜こうとしていました。 回答の内容はちょっと思いつきませんでした。 更にviewを使用するとは、恐れ入りました。 今後は、viewを活用させて頂こうと思います。 ありがとう御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access VBAからcsvの出力について

    Access VBAからcsvの出力について Select * into csvファイル From テーブル名 Where ••• Where句なし、全件ではちゃんと出力できるのですが、 Where句ありだと0件になってしまいます。 Where句指定はできないのでしょうか? よい方法があれば教えてくださいm(._.)m 環境はフロントAccess ,DBはSQL server バッチでの出力も試みましたが、 Serverがあるフォルダにアクセス権限がないため、 断念しました。

  • レコードの有無だけを調べる方法

    通常SELECT命令では、WHERE句で指定した条件と一致したレコードを取り出しますが、WHERE句で指定した条件と一致するレコードが有るか無いかだけ(TRUEかFALSEを返す)を調べる方法はありますでしょうか? ご存知の方がいらっしゃいましたらお教えいただければと思います。

  • php5+mysqlのSELECT文でwhere句を指定すると正しく動

    php5+mysqlのSELECT文でwhere句を指定すると正しく動きません。 レコード数を取得します。 ここで、field10(category)=text型の値に基づきレコード数を取得したいのですが、 $sql="select * from A where B='C'"; とするとレコード出力(index.php)で0を出力。 where句を指定せずに $sql="select * from A"; とするとレコード出力(index.php)で97を出力。 文字コード関係のQ&Aサイトを見ましたが、phpファイルの冒頭部分に $con = mysql_connect($DBSERVER, $DBUSER, $DBPASS); mysql_query("SET NAMES 'sjis'"); $selectdb = mysql_select_db($DBNAME, $con); を指定しています。 テーブルAに含まれるデータは、csv(,区切り)で、load data infile・・・しました。 ※Records:97 Deleted:0 Skipped:0 Warnings:0 他に考えられる原因・対処方法はありますでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • DetailsViewで指定されたレコード表示したい

    Visual Studio 2008で作業しています。 DetailsViewコントロールを使用してAcessDBのレコードの内容を表示しています。この画面は、他の画面で、レコードの一覧を表示し、その一覧で、あるレコードが選択されたときに呼び出されます。この画面で、そのレコードの詳細を表示したいと考えています。レコードには主キーがIDという名称で登録されています。この画面にきたとき、(他の画面で選択した)IDの値を取り出すところまでは、出来たのですが、このIDを指定して、SQL文を発行し、このレコードを取得する方法がわかりません。(現在のSQLステートメントは、select ID,項目1,項目2 ... from table_A のようになっており、 where 句をつけていません。取得したIDをテキストボックスにセットし、where (ID = TextBox1.[Text])のようにしたのですが、実行時に異常終了していまいました。) DetaisViewで、指定されたレコードを表示する方法をご存じのかたがおりましたら教えてください。

  • 数百万件レコードのdelete

    DELETEにてWHERE句の条件で数百万件のレコードを削除したいのですが、効率的な方法を教えてください。SQL初心者です。 LOGの肥大化や削除に非常に時間がかかるのを心配してます。

  • where句への指定

    where句に、次のような条件を指定したいのですが、どのようにすればよいでしょうか?教えてください。 SQL文を実行した日の03:00:00より新しいレコード SQL文は周期的に実行するので、実行した日は変わります。

  • 大量レコードをTRUNCATEせずにすばやく削除する方法

    大量レコードをTRUNCATEせずにすばやく削除する方法 100万レコードあるテーブルのうち1万レコードを残して削除したい。TRUNCATEではWHERE句が指定できないので不可。DELETEでは遅すぎる。何かいい方法はないでしょうか? 1万レコードを一時テーブルに退避してTRUNCATE後に1万レコードをINSERTというのは無しです。1万レコードが1秒でもテーブル上から消えてはいけません。 Oracle10g

  • VBScriptにて、csvファイルから特定のレコードを取得したい

    以下のcsvファイルから例えば、「name」列が「aaa」の行を取得するVBScriptを作成したのですが、うまくいきません。ご教授お願いいたします。 --------------- name,id aaa,1 bbb,2 ccc,3 --------------- 作成したVBScriptは以下のものになります。 (SQL文のWhere句に直接、「where name= 'aaa'」と打つとうまくいきますが、変数を指定したいです。) ------------------------------------------- Option Explicit Dim objADO Dim objRS Dim strName strName = "aaa" 'ADOオブジェクトを作成 Set objADO = CreateObject("ADODB.Connection") 'ADOを使いCSVファイルを扱う準備(オープン)を行う objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _ "DBQ=C:\sagyou\;" & _ "ReadOnly=1" 'SQLを実行し、当該タスクのデータを抽出します Set objRS = objADO.Execute("select * from test.csv where name= strName") 'レコードセットをクローズobjRS.Close objRS.Close 'ADOオブジェクトをクローズ objADO.Close

  • 複数レコードを横並び1レコードで抽出する方法

    ORACLE10gを使用しています。 似た内容の質問があったので QNo.1828920:検索対象のデータが「複数レコード」を「1レコード」として獲得するSQL も見てみたのですが、実際には他にも抽出条件や抽出項目が多いので、 できればGROUP BYは使いたくないと思い、質問させていただきます。 ・TABLE)イメージ CD|NO|NM 10 | 0 | あ 10 | 1 | い 10 | 2 | う 10 | 3 | え ・前提 画面でCD:10およびNO:0~NO:2と範囲指定します。 ・求める結果 下記のように範囲指定したNO分、NMを横並びに抽出したいです。 10,あ,い,う ・考えた内容 VBを使用しているのでプログラム中で動的に抽出項目、FROM句、WHERE句を 追加しようと考えました。 TABLE.NOは2桁なので最大指定で0~99になる可能性があります。その場合FROM句のTABLE別名が99個に なってしまいますが、書き方として問題ないのか不安です。 何かアドバイスがありましたらお願いします。 ・SQL案 SELECT TABLE0.CD, For I = 0 To 2 TABLE & I.NM AS NM & I, Next K FROM For J = 0 To 2 TABLE TABLE & I, Next K WHERE TABLE0.CD = 10 AND For K = 0 To 2 TABLE & K.NO = K AND Next K

  • WHERE レコードが抽出されない

    ADOでSQL文を作ってるのですが WHERE句がうまくできません。 rs.Open "T_テーブル", cn, adOpenKeyset, adLockOptimistic rs.Filter = "URL like '#*'" なら、うまくいくのですが、 Filterを使うのをやめて、WHEREに書きかえると、エラーにはならないのですが 取得レコードが0件になります。 rs.Open "T_テーブル WHERE [URL] like '#*';", cn, adOpenKeyset, adLockOptimistic も rs.Open "T_テーブル WHERE URL like '#*';", cn, adOpenKeyset, adLockOptimistic も、0件が返ります。 何がおかしいのでしょうか? URLフィールドで、#で始まるレコードを抽出したいです。

印刷が出来ない
このQ&Aのポイント
  • MFC-J737DNを使用している方で、用紙ハガキが送れない、ローラーを掃除する方法が分からない、ローラーの位置がわからないなどのトラブルについて相談しています。
  • 質問者はWindowsを使用しており、有線LANで接続しています。関連するソフトやアプリについての情報は提供されていません。
  • 電話回線はひかり回線を利用しています。
回答を見る