ProCOBOLの埋め込みSQLで
...WHERE A = 0 AND EXISTS (SELECT ...) っていうのがあるんですが、"EXISTS"ってどういう意味なんですか?
それと"FOR UPDATE OF ..."の意味もわかりません。
教えてくださーい。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

WHERE A = 0 AND EXISTS (SELECT ...) についてですが


WHERE A = 0 AND EXISTS (SELECT ...) の(SELECT ...)に該当するデータがあるかないかの判断です。
つまり、SELECT ....でデータが存在した時の値を使用して抽出条件としてます。
下記のURLで詳しい説明をされているので参考にしてください。

FOR UPDATE OF についてですが、抽出対象のデータを更新する前提で使用する場合、他のユーザからの更新が行われないようにするためのロックの宣言です。

参考URL:http://www.wakhok.ac.jp/DB/DB.html
    • good
    • 0
この回答へのお礼

いいサイトまで紹介していただきまして・・・
こんなサイトを探してたんです。
分からなかったことも解決できたし!
どうもありがとうございます!

お礼日時:2001/04/10 09:53

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qオフコンのオープン化でコボル言語

からオープンコボルにマイグレーションした場合
従来のコボル言語で仕事をしていたプログラマーの知識はオープンコボルでも引き続き活かせるのでしょうか?
(私はプログラマーではないので専門知識がありませんので平たい説明をよろしくお願いいたします。)

Aベストアンサー

再度のお礼へのコメントです。

>オープン化検討にあし掛け3年になるのですが、イニシャルコストに8千万程かかる見通しで、社長の理解が得られなく、現オフコンの更新時期を迎えてしまったので、しかたなくオフコンを更新するしかない状態です。
 更新時期はベンダーさんの都合ですよね。オープン化と合わせれば更新時期を延ばすことも可能かも知れませんね。

>電算室の人間は従来通りの業務を波風立てずに過ごそうと考えているので安堵しているはずです。
 オープン化でも役立つ人は、より良くすることを提案しますね。オープン化を越えて、いっそのことクラウド化すれば、電算室はオフコンとともに不要となりますよ。

>私の上司や他の部署の人間は、専門的は論議になると電算室に言い負かされている有様です。
 議論を専門的にして、本題をすり替えているのではありませんか。としたら、エンジニアとして姑息です。共通のものさしで作成した資料を提示して、議論がブレないようにするのがプロです。この様に指摘してわかるものを提供するように要求したら如何でしょうか。

>思惑は違えど、社長も電算室もオープン化に高額費用を投資する気が無いのです。
マイグレーションのオープン化でのメリットは、ハード費用の差額だけですからね。

>ですがNECがオフコンの製造を5年後に中止すると発表してますので、それまでには道筋をつけなけらばならなく、ビジネスモデルの検討も不可避であると考えております。
 まずは現状の把握が必要です。それがなければ、新しいモデルと比較ができませんからね。ビジネスモデルの作成に現状維持派は無用です。

では、御社のご発展を祈念いたします。

再度のお礼へのコメントです。

>オープン化検討にあし掛け3年になるのですが、イニシャルコストに8千万程かかる見通しで、社長の理解が得られなく、現オフコンの更新時期を迎えてしまったので、しかたなくオフコンを更新するしかない状態です。
 更新時期はベンダーさんの都合ですよね。オープン化と合わせれば更新時期を延ばすことも可能かも知れませんね。

>電算室の人間は従来通りの業務を波風立てずに過ごそうと考えているので安堵しているはずです。
 オープン化でも役立つ人は、より良くすることを提...続きを読む

QSQL文でWhere+orを使う理由

ItemsテーブルからValueにAという値かBという値を持ってる人のNameを取得するSQL文について調べたのですが、以下のようになってました。

SELECT Name
FROM Items
WHERE Value IN ('A', 'B')

これで動く結果については納得できたのですが、ORを使っても良いのではないでしょうか。以下のようなやり方は出来ないのかと思ったのですが

SELECT Name
FROM Items
WHERE Value = 'A' or 'B'

のように=(イコール)の後の値にorをつけるという書き方は見当たりませんでした。これで動かない場合、以下の方法なら動くはずだと思います。

SELECT Name
FROM Items
WHERE Value = 'A' or Value = 'B'

おそらく結果はINを使った場合と同じだと思うのですが、これはどのようにして使い分けられているのでしょうか?文の短さで言えば値が複数の場合はINの方がはるかに短くなってスマートですが、単数でもINの方が短く済みそうな気がします。INの後のカッコ内に更にSQL文を書くことも出来ますし、Where+orの意義がよく分からなくなってきました。

ItemsテーブルからValueにAという値かBという値を持ってる人のNameを取得するSQL文について調べたのですが、以下のようになってました。

SELECT Name
FROM Items
WHERE Value IN ('A', 'B')

これで動く結果については納得できたのですが、ORを使っても良いのではないでしょうか。以下のようなやり方は出来ないのかと思ったのですが

SELECT Name
FROM Items
WHERE Value = 'A' or 'B'

のように=(イコール)の後の値にorをつけるという書き方は見当たりませんでした。これで動かない場合、以下の...続きを読む

Aベストアンサー

その例ではINでもORでもできますね。
むしろ一番上のINで書かれた方がスマートでよいのではないでしょうか。

>Where+orの意義がよく分からなくなってきました。

WHEREの左辺の条件となる項目が1つしかないと思っていませんか?
左辺の条件項目が2項目あった場合INが使えませんよね?

例).
ValueAがAのもの又はValueBがBのものを抽出したい。
INではできませんよね?

Qコボルとはどのような言語ですか?

友人がプログラマーを目指しています。
入社した会社では連日、厳しい研修が行われ、
コボルという言語を習っているようです。
でも、なんか様子がおかしいのです。
会社の規模に比べて採用人数が多すぎるんです。
で、続々と辞めてるんです。
友人はなんとかスキルを身につけたいから、とがんばっていますが
そもそもコボルって、最近聞かない言語ですよね?
コボルを身につけてプログラマーやSEとして先はあるんでしょうか?

Aベストアンサー

まだ締め切られていないので、一言。
大手メーカでSEを35年経験しました。担当した業種で適用していたパッケージソフトは基幹部分がCOBOLで作成されており、機種やOSに依存する部分はアセンブラやC++等で作成されていました。この構造で汎用機からUNIX、Windowsまで機種やOSに依存しない、また過去の貴重な(金額的にも品質的にも)プログラム資産を継承したパッケージとなっていました。

1)COBOLについて
  今回のご質問の内容を見ると、プログラマとしてCOBOLを選択して勉強しているというより、会社の業務上、COBOLが必要で、そのために会社が習得させているというように理解しましたので、COBOLが過去の言語云々と言うのは直接は関係してこないように思います。確かに身につけていても転職等に強力な武器になるような言語ではないでしょうが。でも、所詮、言語なんて時流のものと考えておくべきと思います。

2)派遣について
  顧客先に常駐して開発作業を行うことはソフトウェア業界では日常茶飯事のことです。大手メーカSEでも入社以来10年以上顧客先常駐なんてケースもよくあります。金融SEなんかは1プロジェクト(基本設計から本稼働まで)期間が3年なんて普通にありますから。
  これを言う時に、入社した会社で業務を行っていないから派遣とひと括りで言うのは誤りで、請負の場合でもこのような作業形態はあります。派遣と請負の違いは、簡単に言うと指揮命令ルートにあります。派遣は顧客から指示が出ますが、請負は会社からしか出ません。(実務というより契約の話でした)

3)会社規模と採用人数
  極端なアンバランスは問題と思いますが、経営方針に基づいた採用であればOKでしょう。
  問題は退職者が多いこと。これは、何らかの就業上の問題が内在している事が考えられますが、本人が納得できればいいわけで、部外者が分からない範囲で議論しても始まらないと思います。

まだ締め切られていないので、一言。
大手メーカでSEを35年経験しました。担当した業種で適用していたパッケージソフトは基幹部分がCOBOLで作成されており、機種やOSに依存する部分はアセンブラやC++等で作成されていました。この構造で汎用機からUNIX、Windowsまで機種やOSに依存しない、また過去の貴重な(金額的にも品質的にも)プログラム資産を継承したパッケージとなっていました。

1)COBOLについて
  今回のご質問の内容を見ると、プログラマとしてCOBOLを選択して勉強しているというより、会社の...続きを読む

QSQL(PostgreSQL) select文

SQLを始めたのですが、少しつまずいたので、質問させてください。

住所録検索等で、

SELECT * FROM test WHERE name LIKE '%goo%';

と書くと、nameというカラム名から goo という文字列の入ったレコードを
検索できると思います。

そこで、この goo という文字列を test テーブル全体から検索したいのですが
わかりません。
teat テーブル全体から(どこのカラム名からでも)検索の仕方を教えてください。

初歩的な質問ですみません。

参考HPでもかまいません。

Aベストアンサー

●SQLのウイークポイントをついたと思います。フィールドが分かれているデータベースが、歴史的に主流だったとおもうので、単一フィールドの全文検索の様なのは予想外対象外かと思う。しかし2,3のフィールドに一度に条件をつけたい時は度々ありますね。
●#1の方のORを使えと解答がありますが、PostgreSQLの記述で、ANDの例では下記になるという説明を見つけました。ちょっと
意外です。残念ながら私には正否を判断する力がありません。
Where FieldName1 = 100 And (FieldName2 = "abc" Or FieldName2 = "xyz")
ANDをORに置き換えてやって見てください。
●下記3種を試みられては。
(1)WHERE FD1 LIKE ’・・・’ OR FD2 LIKE ’・・・’ OR ・・・
(2)FD1 LIKE ’・・・’等を( )で囲んでORで繋ぐ。
(3)上記のようにFD1 LIKE ’・・・’ OR (FD2 LIKE 
  ’・・・’ OR (・・・   ))))
●条件を検索する対象フィールドを、複数にして並べることを、許していない処理系もあるような気がする。PostgreSQLは大丈夫のよう
です。
●貴殿のデータベースが、文字列ばかりのフィールドなら、単一フィールドにデーターベースを定義しなおしは出来ませんか。

●SQLのウイークポイントをついたと思います。フィールドが分かれているデータベースが、歴史的に主流だったとおもうので、単一フィールドの全文検索の様なのは予想外対象外かと思う。しかし2,3のフィールドに一度に条件をつけたい時は度々ありますね。
●#1の方のORを使えと解答がありますが、PostgreSQLの記述で、ANDの例では下記になるという説明を見つけました。ちょっと
意外です。残念ながら私には正否を判断する力がありません。
Where FieldName1 = 100 And (FieldName2 = "abc" Or FieldNa...続きを読む

Qwindowsで動作するフリーのフォートラン

昔よくフォートランでプログラムを書いたのですが、当時のプログラムを動かしてみたくなりました。

ウィンドウズ上で動くフリーのフォートランでよい物はないでしょうか?

Aベストアンサー

 このサイトのFORTRANはいかがでしょうか?
 13年前にMS FORTRANを高校生の時に使っていましたが、MS-DOSでの動作だったので現在はWinでは使えませんよね。(^^;
 パソコンでプログラミング後にホストコンピュータにデータを転送してコンパイルさせて実行させるプログラミングばかりやってたのを思い出します。(笑)

参考URL:http://www10.plala.or.jp/bunme/tada/tada010.html

QUPDATE文のWHERE句について

if(!is_null($_GET['sid'])) $sid = (int)$_GET['sid'];

$sql = "UPDATE ideamemo_table SET update_date = '$update' WHERE sid = $sid;";
mysql_query($sql, $con) or die(mysql_error());

と書いた時に、下記のようなエラーが表示されます。
どこがどう間違っているのでしょうか。
$sidを、シングルクォーテーションでくくっても、エラーが出ます。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE sid = ''' at line 1

Aベストアンサー

$_GET['sid']がnullの場合,$sidの値が設定されません。
その結果,$sqlのWHERE節が,「sid=」となるため,エラーになっているのかと思います。
このあたりは,$sql自体をechoするなりしてみると理由がわかりやすくなるかと思います。

# mysql関数の利用とか$updateという文字列型っぽい物を変数展開で生成しているとか,問題点は色々ありそうですが。

Q!!!「コボル」!!!教えてください!!!

こんにちは!
今日ある会社のPGの面接にいってきました。
中途採用です。
言語はコボルを使うらしいことが求人票にかいてありました。私はまったくプログラミングの経験がありませんが、「必要経験等は特にありません」との表記がありましたので面接にいきました。ところが即戦力(もしくはある程度理解してる方)希望と言われました。そしてあなたの力を知りたいので課題を出します。といわれました。課題はまだ頂いていないのですが早速今から基礎の勉強をしようかと思っていますがまったくわからないので何からしていいのかわかりませんw初心者用の良いサイトご存知の方いらっしゃいましたら教えてください!あと質問がいくつかあります。よろしくお願いします!!

1、教えてgooのカテゴリにはなぜ、コボルの欄がないのでしょうか?

2、コボルって難しいですか?

3、コボルは時代遅れで廃れてると聞きますがほんとですか?

よろしお願いします!

Aベストアンサー

未経験OKと言いながら即戦力が欲しいとは、良くある話ですね。その企業に憤りさえ感じます。

まず、COBOLについてのサイトは知りませんので、ご紹介できませんが、ご質問なら何とか回答できそうですので。。

1、教えてgooのカテゴリにはなぜ、コボルの欄がないのでしょうか?

COBOLへの質問のニーズが少ないからでしょう。


2、コボルって難しいですか?

自分も多少やっていましたが、他言語に比べて比較的易しいですよ。中学程度の英語が分れば、コーディングできますし・・・

3、コボルは時代遅れで廃れてると聞きますがほんとですか?

そうですね、Cobolは事務処理用コンピュータ(オフィスコンピュータ、汎用機)で動く言語です。最近のコンピュータ市場の動向を見ていただければ分りますが、それがWindowsマシンに置き換わってきているので、この先伸びる可能性はゼロに近いです。

QFile.Existsでのファイルのある場合のDB作成

分類[C#]
はじめまして!
今回初めて質問させていただきます!
初めてなのでカテゴリーが間違ってないか心配です・・・。
さて、質問なのですがC#で
if (!File.Exists("DB.mds")){
  dbcele();
}
と、書きこの場合「DB.mds」がない場合実行となると思うのですがDB.mdsがあるとき実行するとこのdbcele()が実行されてしまいます。
ちなみにこのdecare()は・・・
private void dbcele(){
try
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create(strAC);
object oMissing = System.Reflection.Missing.Value;
// テーブルを作成する(CUSTOMER)
ADOX.TableClass td = new ADOX.TableClass();
td.ParentCatalog = cat;
td.Name = "DBT";
ADOX.ColumnClass hiduke = new ADOX.ColumnClass();
hiduke.ParentCatalog = cat;
hiduke.Name = "日付";
hiduke.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
td.Columns.Append(hiduke, ADOX.DataTypeEnum.adDate, 0);
cat.Tables.Append(td);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
で、このエラーメッセージが実行されてしまいます。
DB.mdsがある場合実行する必要はないのでこのエラーをなくしたいのですがどうすればいいでしょうか?
初心者のため、勘違いしてるかもしれませんがよろしくお願いします!
どうかよろしくお願いします。

分類[C#]
はじめまして!
今回初めて質問させていただきます!
初めてなのでカテゴリーが間違ってないか心配です・・・。
さて、質問なのですがC#で
if (!File.Exists("DB.mds")){
  dbcele();
}
と、書きこの場合「DB.mds」がない場合実行となると思うのですがDB.mdsがあるとき実行するとこのdbcele()が実行されてしまいます。
ちなみにこのdecare()は・・・
private void dbcele(){
try
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create(strAC);
object oMissing =...続きを読む

Aベストアンサー

if (!File.Exists("DB.mds")){
のところの DB.mdsを フルパスで指定して下さい。
それで、解決すると思います。

Qフォートランを学びたい

経済分析等でフォートランを使いたいと思うのですが、
なかなかきっかけを掴むことができません。
どうしたら、知識の習得ができるでしょうか。
実際に使いこなせるレベルになるにはどうしたらいいのでしょうか。
フォートランにかわるものもしくは文系人間でもお勧めのものはありますか。

ご回答宜しくお願い致します。

Aベストアンサー

数式に基づいてシミュレーションを行える言語ということなら、
内容によるかも知れませんがほとんどの言語でできるでしょう。
ただ、多少の向き不向きや実行速度差はあります。

で、必要なのはプログラミング言語に関する知識でなく、
プログラミングそのものに関してだと思います。
特に数値計算なんかは、どの言語でもコード上あまり違いはでないでしょう。
あとは、そのシミュレーションとかそのための数式を理解しているかでしょうね。


>Javaは、そんな私でもシミュレーションができるまで、使いこなせるようになりますか?
どの言語を使ったとしてもあなた次第としか言えません。

QADOからSQLのEXISTSの結果(もしくは変数)を取得

ASPからADOを使用して、SQLサーバー上のデータを参照する場合に、通常SQLステートメントを Connection::Execute() に渡して、レコードセットを受け取るのが普通だと思いますが、たとえば、EXISTS() の結果(有るか無いか)を取得することは出来ないでしょうか。

代替え案として、SELECTを行い、レコードセットの件数が0か否かで判断することも出来るとは思いますが、もしテーブルが膨大であった場合や、結果が膨大であった場合に、総当たり判定コストや通信コストがかかってしまうのを懸念しています。

また、それ以外にSQL中で使用した変数の内容をADO側に渡す方法は有るのでしょうか。(これが出来れば問題ないのですが、、、)

結果用のテーブルを作成して、そこからSELECTしてレコードセットで返す。位しか思いつきません。
宜しくお願いいたします。

開発環境は:
Windows 2000 Server / IIS 5.0 / ASP
Microsoft SQL Server 2000 and 7.0
Microsoft Internet Explorer 6.0sp1

ASPからADOを使用して、SQLサーバー上のデータを参照する場合に、通常SQLステートメントを Connection::Execute() に渡して、レコードセットを受け取るのが普通だと思いますが、たとえば、EXISTS() の結果(有るか無いか)を取得することは出来ないでしょうか。

代替え案として、SELECTを行い、レコードセットの件数が0か否かで判断することも出来るとは思いますが、もしテーブルが膨大であった場合や、結果が膨大であった場合に、総当たり判定コストや通信コストがかかってしまうのを懸念しています。

また...続きを読む

Aベストアンサー

>レコードセットを受け取るのが普通だと思いますが、たとえば、
>EXISTS() の結果(有るか無いか)を取得することは出来ないでしょうか。

1.ストアドを作成する(Transact-SQL)

2.Oracleのdual表のような、レコードが1件だけ存在するようなテーブルを作成しておいてexistsする

select 'X' from dual where exists(select 'X' from 調べたいテーブル)

dualからのレコードが1件取得されたらあり、0件だったらなしと判断できます。

>また、それ以外にSQL中で使用した変数の内容をADO側に渡す方法は有るのでしょうか。
>(これが出来れば問題ないのですが、、、)

SQL中で使用した変数とはなにをさすんですか?
通常のSQLでパラメータを使用というと、クライアントから
サーバに渡す方しかないと思うんですが。

ちなみに、ADOならストアドのパラメータなら入力も出力も受け取れますよ。


人気Q&Aランキング

おすすめ情報