X



Oracle 質問総合スレ14

0001NAME IS NULL
垢版 |
2019/07/07(日) 16:09:37.68ID:???
◆前スレ
Oracle 質問総合スレ13
https://mevius.5ch.net/test/read.cgi/db/1502506923/

◆過去スレ
Oracle 質問総合スレ12
http://mevius.2ch.net/test/read.cgi/db/1471652805/
Oracle 質問総合スレ11
http://echo.2ch.net/test/read.cgi/db/1437510145/
Oracle 質問総合スレ10
http://peace.2ch.net/test/read.cgi/db/1403674585/
Oracle 質問総合スレ9
http://toro.2ch.net/test/read.cgi/db/1359049907/
Oracle 質問総合スレ8
http://toro.2ch.net/test/read.cgi/db/1335097274/
Oracle 質問総合スレ7
http://toro.2ch.net/test/read.cgi/db/1326074212/
Oracle 質問総合スレ6
http://toro.2ch.net/test/read.cgi/db/1314941245/
Oracle 質問総合スレ5
http://hibari.2ch.net/test/read.cgi/db/1279635842/
Oracle 質問総合スレ4
http://pc11.2ch.net/test/read.cgi/db/1250995281/
Oracle 質問総合スレ3
http://pc11.2ch.net/test/read.cgi/db/1223384283
Oracle 質問総合スレ2
http://pc11.2ch.net/test/read.cgi/db/1194742799
Oracle 質問総合スレ
http://pc11.2ch.net/test/read.cgi/db/1163907455

◆公式サイト
OTN-J
ttp://www.oracle.com/technetwork/jp/index.html

◆オンラインマニュアル
ttp://www.oracle.com/technetwork/jp/indexes/documentation/index.html

◆My Oracle Support
ttp://support.oracle.com/
0656NAME IS NULL
垢版 |
2022/12/22(木) 04:50:38.33ID:???
>>655
> 君の言うlengthと俺の言うlengthが違うだけ
はあ?
わけわからん長さの定義出されても困るわ

> OracleがなぜANSI準拠にできないのか仕組みを説明してあげたつもりだったんだがわかんないなら別にいい
ポンコツOracleの仕組みなんてどうでもいいしw
0658NAME IS NULL
垢版 |
2022/12/23(金) 23:07:09.26ID:???
決着?
ボラクル君が遊ばれてるだけだよ
0659NAME IS NULL
垢版 |
2022/12/26(月) 13:14:09.18ID:P+HWBCzm
OracleDBのデータファイルはちゃんと領域を確保するまっとうな仕組み。
0660NAME IS NULL
垢版 |
2022/12/26(月) 13:32:19.60ID:P+HWBCzm
コッドがあとからNULL以外に「空」を追加したから、後発製品には「空」があるだけ。

空文字列にアプリケーション上の意味を持たせた設計はアンチパターン。

空文字列の場合は何かを意味するとしてしまうのはよくない。

数値型のときの「空」がゼロなのもよくない。
意図せずにゼロが入るのは完全な誤り。
0661NAME IS NULL
垢版 |
2022/12/26(月) 19:41:24.87ID:???
空文字列なんて、ただの長さゼロの有効な文字列なんだが
空文字列なんて、ただの長さゼロの有効な文字列なんだが
数値の空は0ではだめなのに
文字列の空は空文字列でもいいと?

コッドが追加したNULL以外の空ってなに?
0662NAME IS NULL
垢版 |
2022/12/27(火) 00:31:31.50ID:???
CoddのDBMSはSystem Rで、それが是だろ
0663NAME IS NULL
垢版 |
2022/12/27(火) 19:13:52.48ID:Nm1SClNo
>>661
NULLは空ではなくて、値がないという概念。

一部の人間がNULL以外に空文字列がほしいと言ったせいで、あとからNULLではない空文字列をコッドは追加した。

コッドはオラクル社と、一部のユーザーの意見を慌てて混ぜ込んだので、よくわからないものになった。
0664NAME IS NULL
垢版 |
2022/12/27(火) 19:18:02.13ID:Nm1SClNo
>>661
コッドはどのデータ型でも空が必要と考え直して、あせって空の概念を追加したから、数値の空がゼロになるという失敗をおかした。

ゼロが値のデータと、空を表現するゼロというデータの区別ができなくなった。

空文字列も同様に、空文字列が空なのか、空というデータなのか区別がつかなくなった。
0665NAME IS NULL
垢版 |
2022/12/27(火) 19:20:10.01ID:???
>>663
空文字列のほうがNULLより古い概念だと思うんだがな

つまりコッドは自分の間違いに気付いて修正したのに
オラクルは修正しなかったと
0666NAME IS NULL
垢版 |
2022/12/28(水) 00:44:53.00ID:???
おまえそんなウソをよく信じるなwww
0667NAME IS NULL
垢版 |
2022/12/28(水) 21:08:04.43ID:???
Edgar Frank “Ted” Coddが『A Relational Model of Data for Large Shared Data Banks』を書いたのが1969年
John McCarthyがLISP 1.5を作ったのが1958年
もちろんLISP 1.5に文字列は(当然空文字列も)ある
要するに>>663は単なるアホの妄想でしかない
0668NAME IS NULL
垢版 |
2022/12/28(水) 23:39:34.80ID:???
オラクルがおバカな設計をしたもんだからこりゃダメだと感じて
空文字とNULLは違うんだよって至極当然のことを声高に宣言して標準化することになったんだよ
0669NAME IS NULL
垢版 |
2023/01/04(水) 16:34:41.59ID:nkfvAbjd
コッドはオラクル社が製品化したことについては悪く言っていない。
空の概念は後付けなので、オラクル社が製品化したときには、まだコッドは空の概念がなかった。
0670NAME IS NULL
垢版 |
2023/01/04(水) 17:22:14.61ID:xblv//Bh
>>667
LISPおじさんは、空文字列がnilに変換されてしまうから怒っているのか。

ようやく変なこだわりが変わった。
それはLISPだけの話じゃない。

空文字列は空の文字列だから、NULLなんだよ?

わかった?
0671NAME IS NULL
垢版 |
2023/01/04(水) 17:48:04.83ID:???
年明け早々ガイジが沸いてて草
0672NAME IS NULL
垢版 |
2023/01/05(木) 09:27:21.66ID:uQIDyRWM
NULLは空文字列と使う側が変換すればいい話をくどくど言うやつは死ぬまで言うんだろうな。
0673NAME IS NULL
垢版 |
2023/01/05(木) 14:58:06.50ID:???
情報が失われてるのにどうやって変換するんだよw
NULLと空文字を区別するためのカラムを別途用意するのかww
0674NAME IS NULL
垢版 |
2023/01/05(木) 16:45:00.33ID:???
空文字列がNULLの人に、下記2点、イエスかノーかで答えてほしい

1.空文字列は文字列として有効である
2.NULLは文字列として有効である
0675NAME IS NULL
垢版 |
2023/01/06(金) 22:45:20.28ID:qDWOeluB
NULLは値がないことだよ

空文字列は空文字列という値だよ

空文字列はいらないと言ったのは博士だよ

歴史を知らないのなら、博士の考えが揺れたことをまずは調べてね。
0676NAME IS NULL
垢版 |
2023/01/06(金) 22:54:26.06ID:qDWOeluB
OracleDBでもCLOB型なら、ロケーターがあっても中身は空文字列という状態がある。

OracleDBは博士の言うものを実装するにあたって、NULLを値とも考えて実装した。

これはNULLを値として扱わないと実装できないからだ。

博士はOracleを見て、自分の理屈が実現しにくい中途半端な仕様とわかり、他からの意見も急遽、取り入れて空の概念を付け加えた。

NULLという概念はすばらしい。
しかし、空という概念をあとから付け加えたせいで、NULLの定義が邪魔になった。
0677NAME IS NULL
垢版 |
2023/01/06(金) 22:55:33.54ID:qDWOeluB
空文字列って初心者がよく使うよね
あれ何の意味があるんだろうか
0678NAME IS NULL
垢版 |
2023/01/06(金) 23:00:02.73ID:qDWOeluB
空文字列は見えないから、CUIの時代に空文字列を使って何がしたかったのかな?

空文字列に意味を持たせる設計なんて、メインフレーム時代の発想。
0679NAME IS NULL
垢版 |
2023/01/08(日) 17:57:43.19ID:???
ボラクル君はボラクル正常性バイアスに囚われて
低能ホラ吹きと化してしまってるな
0680NAME IS NULL
垢版 |
2023/01/08(日) 23:22:37.55ID:gY/PSv6X
>>679
心療内科などで掲示板の書き込みが気になって生活に支障が出ているかもしれないと相談した方がいいよ。
0681NAME IS NULL
垢版 |
2023/01/09(月) 06:29:09.83ID:???
脱オラクルしなよ
0682NAME IS NULL
垢版 |
2023/01/09(月) 21:39:23.15ID:KUT/WaWZ
有名どころはすべて使っているけど、どの製品も変なところはある。
0683NAME IS NULL
垢版 |
2023/01/12(木) 16:53:22.41ID:MJ3wDMfx
【2月13日】 原発上空にUFO? 【震度6強】
://rio2016.5ch.net/test/read.cgi/lifeline/1615255632/l50
0684NAME IS NULL
垢版 |
2023/01/19(木) 22:35:08.25ID:jlE8WkqW
>>681
DBAの立場からすると安易にOSSは勧められない。
安かろう悪かろうが必ず成立する世界だから。

MySQLもPostgreSQLもただの開発者ならまだいいが、DBA作業となると元の出来の悪さが際立って対処が難しくなる。

AWSでのOracleDBとSQL Serverが選択されるようになってきた。少し前までは減っていく方向だったが、フルマネージドはバージョンをどんどん上げないといけないから、仕様が変わっていないか頻繁に確認し直さないといけない。
0685NAME IS NULL
垢版 |
2023/01/20(金) 05:53:38.02ID:???
脱オラクルはテクニカルな問題はあまり問題視されていないような
0686NAME IS NULL
垢版 |
2023/01/21(土) 02:52:45.82ID:???
そりゃいまどき特定のDBMS(ORACLE)でしか使えないような機能とか、そうそうないからな
0687NAME IS NULL
垢版 |
2023/01/21(土) 15:36:12.78ID:W/7tJ9Sa
>>686
はあ?
0688NAME IS NULL
垢版 |
2023/01/21(土) 15:37:29.54ID:W/7tJ9Sa
>>686
DBMSの選定で機能比較をしたことがあるのか?
ないからそんなことが言える。
0689NAME IS NULL
垢版 |
2023/01/21(土) 21:00:31.30ID:???
Oracle だけじゃないけど SQL-Server 使ってると order by ~ nulls first は欲しいと思う
逆にちょっとした値を直書きしたい時に Oracle だと select ~ from (VALUES (1, 'one'), (2, 'two'), (3, 'three')) as t (num,letter); ってできないのが不満だわ
0690NAME IS NULL
垢版 |
2023/01/21(土) 23:12:57.75ID:W/7tJ9Sa
>>689
SQL Serverは文字の照合順序が指定できる。

そうしなくてもUNION ALLでNULLレコードを最初に持ってくるか最後に持ってくるかをSELECT文で指定できる。
0691NAME IS NULL
垢版 |
2023/01/21(土) 23:19:08.33ID:W/7tJ9Sa
>>689
ORDER BYの仕様は、OracleDBがNULLをNULL値と定義したおかげ。

キャラクタセットと文字の照合順序をORDER BYに絡ませた他のRBDMSは、性能を優先したせいで面倒な比較条件、ソート条件が仕様として残ってしまった。
0692NAME IS NULL
垢版 |
2023/01/23(月) 20:24:57.70ID:???
>>689
order by のNULLの順序は確かに指定したいときはままあるんだが、
ソートしたい項目にNULLが入ってる段階で設計間違ってる気がしないでもない

>>690-691
NULLは別に文字に限った話じゃないんだが?
ちなみに
>UNION ALLでNULLレコードを最初に持ってくるか最後に持ってくるかをSELECT文で指定できる。
これどうやるんだ?NULLレコードってなんだ?
0693NAME IS NULL
垢版 |
2023/01/23(月) 20:36:47.29ID:???
>>692
> ソートしたい項目にNULLが入ってる段階で設計間違ってる気がしないでもない
left join の結果とかで null をどっちかに寄せたいとか

> >>690-691
例のキチなので相手しなくていいかと
0694NAME IS NULL
垢版 |
2023/01/23(月) 21:28:14.57ID:9t/y6Qb8
------------
<テーブル>
・カラム
ID(主キー)(論理名 ID)
Number(論理名 巻数)
Title(論理名 タイトル)

・データ
ID 巻数     タイトル
1 第1巻     あいうえお
2 第2巻     かきくけこ
3 第3巻     さしすせそ
------------
このテーブルでInsert文作りたいのですが、
ID、Numberが+1ずつしていく場合、タイトル以外を自動加算させる書き方ってありますか?
------------
Insert Into テーブル
(ID,Number,Title)
Select
MAX(ID)+1, 第???回, たちつてと
From テーブル
------------
この 第???回 がわからず。。
0695NAME IS NULL
垢版 |
2023/01/24(火) 01:03:41.31ID:CDmns3ou
>>692
ソートしたカラムにNULLのレコードがあると彼は言っている。

select aaa from abc where aaa = b and aaa is not null order by aaa
union all
select aaa from abc where aaa = b and aaa is null;
0696NAME IS NULL
垢版 |
2023/01/24(火) 01:04:41.14ID:CDmns3ou
>>694
PL/SQLでやればいい
0697NAME IS NULL
垢版 |
2023/01/24(火) 01:06:05.17ID:CDmns3ou
>>694
select max(id) だけでも破綻しているぞ?
0698NAME IS NULL
垢版 |
2023/01/24(火) 11:44:08.22ID:???
>>695
そのSQL通るのか?
すくなくともSQL Serverではunionに指定できるorder byは最後に指定して全体に適用されるものだけのはずだが
サブクエリでTopとか使うなら個別のorder byは有効かもしれんが
unionした結果の行の順番は(全体としてのorder byがなければ)保証されないと思うが

ORACLEならそれで全体の順序が保証されるってなら、根拠となる資料教えてくれ
0699NAME IS NULL
垢版 |
2023/01/24(火) 13:01:51.57ID:???
保証されるわけない
ちなみにオラクルでは個別のorder byも書けない
0700NAME IS NULL
垢版 |
2023/01/25(水) 00:21:18.55ID:???
>>694
INSERT INTO ~ SELECT MAX(ID) + 1 …の形だと同時実行されたらダメじゃね?
他のDBMSと違ってオラクルだとSERIALIZABLEでもwrite skewが発生する
0701NAME IS NULL
垢版 |
2023/01/25(水) 13:44:05.91ID:???
>>700
さすがにSERIALIZABLEでそんなことが起こったらダメだろうと思うんだが
WikiのSnapshot isolation のとこ見ると
>Oracle は snapshot isolation のことを "serializable" と呼んでいる
って書いてあるな

今回の例なら素直にシーケンス使えで良いかもしれんが
トランザクション設計ちょっと考えんといかんな

どおりでみんなやたらにfor update書くわけだ
0702NAME IS NULL
垢版 |
2023/01/25(水) 15:22:11.85ID:???
オラクルでgap freeなシーケンスって存在する?
0703NAME IS NULL
垢版 |
2023/01/25(水) 17:59:27.93ID:???
>>700
同時実行とか関係なく単にデータを生成したいだけかもしれない
0704NAME IS NULL
垢版 |
2023/01/25(水) 23:07:49.88ID:YToOJ4zV
>>698
unionとunion allはまったく別物
0705NAME IS NULL
垢版 |
2023/01/25(水) 23:18:07.37ID:YToOJ4zV
>>698
select句に対して、ひとつのorder by句が対応するという構文の仕様があるが、select文のfrom指定をインライビュー(副問い合わせ)にすれば問題ない。

これは昔は想定していなかった仕様だから、SQLとして互換性を持たせるための構文仕様の話。

副問い合わせは、現在ではあたりまえの拡張構文だけど、古い仕様があるから、わさわざ2段階にしないといけないだけ。
0706NAME IS NULL
垢版 |
2023/01/25(水) 23:19:41.26ID:YToOJ4zV
------------
<テーブル>
・カラム
ID(主キー)(論理名 ID)
Number(論理名 巻数)
Title(論理名 タイトル)

・データ
ID 巻数     タイトル
1 第1巻     あいうえお
2 第2巻     かきくけこ
3 第3巻     さしすせそ
------------
このテーブルでInsert文作りたいのですが、
ID、Numberが+1ずつしていく場合、タイトル以外を自動加算させる書き方ってありますか?
------------
Insert Into テーブル
(ID,Number,Title)
Select
MAX(ID)+1, 第???回, たちつてと
From テーブル
------------
この 第???回 がわからず。。
0707NAME IS NULL
垢版 |
2023/01/25(水) 23:23:04.05ID:YToOJ4zV
>>706
単に

select id, '第' || id || '巻' as 巻数,タイトル from テーブル;

すらわからないレベルだと思われる。
0708NAME IS NULL
垢版 |
2023/01/25(水) 23:59:48.35ID:YToOJ4zV
>>701
serializableという言葉の定義は、製品によってバラバラ。

「Oracle は snapshot isolation のことを "serializable" と呼んでいる[1][2][3]。

PostgreSQL は以前は snapshot isolation のことを "serializable" と呼んでいたが、version 9.1 から "repeatable read" と呼ぶよう変更した[4][5][6]。

どちらの判断が正しいかは議論があるが、いずれにせよユーザは両者の違いをよく理解してデータ一貫性を失わないように注意する必要がある。」は、単にそう言っているだけ。

OracleDBは読み取り一貫性がなくなった時点で、ORA-1555の例外が発生して、トラサンザクションがロールバックされるから問題ない。
0709NAME IS NULL
垢版 |
2023/01/26(木) 02:14:02.80ID:???
>>708
別にエラーがでるなら問題ないんだよ
スナップショットだと読み取り一貫性は保たれてるのにwrite skewが発生するから問題なんだが?

さすがにserializableなのに直列化されないから注意しろとか地雷以外のなにものでもないわ
オラクルはよく言われるけど、昔からのおかしな仕様が修正しようにもできないからなぁ
0710NAME IS NULL
垢版 |
2023/01/26(木) 02:42:30.44ID:0ZdAuIEw
>>709
ちゃんと出来ていないものと、ちゃんと出来ているOracleDBを比較しても意味がない。

SQL Serverは例外(エラー)が発生しても、処理が自動的には止まらないというポンコツ。

人間がポンコツをポンコツだとわかってちゃんと使えるかどうかと、人間がミスしたら決まり通りに動く仕様のどちらがいいかだ。

OracleDBはそういう難癖、批判を受け続けているから、ちゃんとお金をかけて仕様を決めて作り込んでいる。

SQL ServerやMySQL系はSQLに存在しないテーブルが書いてあっても、構文チェックでははねずに、処理を実行するタイミングで実行時エラーを出す。

PostgreSQLも似たようなポンコツぶりだが、基底のデータ型が原因のSQL問題がある。

最初に作り込んでいた製品と、あと付けした製品だと、あと付けした製品の方が癖が強い。

何が正しいとか、何がおかしいとか正解がないのに、仕様が明確な製品をおかしいというのは、本当に嫌がらせにすぎない。

製品マニュアルがまともにない製品を基準に語るのは自由だが、製品の仕様を理解しないまま悪口を言うのは性格がよろしくない。
0711NAME IS NULL
垢版 |
2023/01/26(木) 02:54:55.00ID:0ZdAuIEw
自分の好きな製品のスレッドを盛り上げようとはしないあたりが性格が歪んでいると思う。

データベース板はOracleDBの悪口しか書かれない。
たくさん悪口を書かれるということは、それだけたくさん使われていて不満が少ないということだ。

日本IBMなんてDb2が心配なら、OracleDBを使ってくださいというぐらい、ちゃんと製品の選定をしている。

日本マイクロソフトは、SQL Serverのソースコードを読ませて、バグを外部から教えてもらってから、さあどうするかというレベル。

MySQLはMySQLしかわからない人向けの製品。
PosgreSQLは玄人向け製品。
0712NAME IS NULL
垢版 |
2023/01/26(木) 06:34:17.89ID:???
>>704
お前の戯言はどうでもいいから
> ORACLEならそれで全体の順序が保証されるってなら、根拠となる資料教えてくれ
よろしく
0713NAME IS NULL
垢版 |
2023/01/26(木) 10:20:23.59ID:0ZdAuIEw
>>712
オラクル社の製品マニュアル

オラクルマスターの試験でも質問の仕方が違うだけで、昔から出る問題だよ。
0714NAME IS NULL
垢版 |
2023/01/26(木) 10:38:59.85ID:???
>>713
マニュアルの名称とページ数よろしく

ちなみにゴールド持ちにきいたら何アホなこと言ってるんだよ
って言われたけどねw
0715NAME IS NULL
垢版 |
2023/01/26(木) 12:00:31.15ID:0ZdAuIEw
>>714
試験の仕組み上、Gold保持者は移行試験というショートカットがあるため、あまり知識がない場合がある。

Oracle Databaseの概要 トランザクションの管理
https://docs.oracle.com/cd/F19136_01/cncpt/introduction-to-oracle-database.html#GUID-ACACFFBC-BCB9-4BA9-A2A3-1B9B2003B3B4

Oracle Databaseの概要 トランザクションの管理 トランザクション
https://docs.oracle.com/cd/F19136_01/cncpt/transactions.html#GUID-B97790CB-DF82-442D-B9D5-50CCE6BF9FBD

Oracle Databaseの概要 トランザクションの管理 データ同時実行性
https://docs.oracle.com/cd/F19136_01/cncpt/data-concurrency-and-consistency.html#GUID-AD0CEE83-2F33-4906-94E1-3D1022924C63
0716NAME IS NULL
垢版 |
2023/01/26(木) 12:19:40.43ID:???
>>715
頭大丈夫か?
トランザクションの話じゃなくて
> unionした結果の行の順番は(全体としてのorder byがなければ)保証されないと思うが
> ORACLEならそれで全体の順序が保証されるってなら、根拠となる資料教えてくれ
の話だぞw
0717NAME IS NULL
垢版 |
2023/01/26(木) 14:44:33.99ID:0ZdAuIEw
>>716
705 NAME IS NULL 2023/01/25(水) 23:18:07.37 ID:YToOJ4zV
>>698
select句に対して、ひとつのorder by句が対応するという構文の仕様があるが、select文のfrom指定をインライビュー(副問い合わせ)にすれば問題ない。

これは昔は想定していなかった仕様だから、SQLとして互換性を持たせるための構文仕様の話。

副問い合わせは、現在ではあたりまえの拡張構文だけど、古い仕様があるから、わさわざ2段階にしないといけないだけ。
0718NAME IS NULL
垢版 |
2023/01/26(木) 14:45:43.06ID:0ZdAuIEw
>>716
製品マニュアルのSELECT文の構文部分を読め
難しいだろうから、しばらくは暇つぶしになるだろう。
0719NAME IS NULL
垢版 |
2023/01/26(木) 14:49:05.23ID:0ZdAuIEw
>>716
まずは冷静に読みなさい。
間違えたもの訂正したから、訂正部分をスルーしたのは私の書き方が悪いのもあるが、特定厨のくせにちゃんと見てないあなた様をちょっとおかしい。
0720NAME IS NULL
垢版 |
2023/01/26(木) 14:52:21.72ID:0ZdAuIEw
このスレは機能不全になったな。
データベース板はどのスレも書き込みがあると、他人の書き込みのアラ探しをする無職がいるようだ。

OTNの掲示板が機能していた時代でも、ネットで質問して返ってくる内容なんて変なのばかりだったぞ。

匿名をいいことに他人の書き込みをいちいちギャーギャー言うのは、本当にタチが悪い。
0721NAME IS NULL
垢版 |
2023/01/26(木) 15:11:59.93ID:???
>>718-719
ドヤ顔で頓珍漢なトランザクションのURL示せるんならselectの説明してるURL示せよ
0722NAME IS NULL
垢版 |
2023/01/26(木) 15:22:22.59ID:0ZdAuIEw
最初に言った人がORDER BYでNULLを最初か最後かに指定できないと言ったのを、そういう仕様だったかなと思ったしまっていた

よく考えたら、OracleDBでもちゃんとNULLの並び順の指定方法があることを思い出したよ。

ORDER BY句に下記のものを書けば、NULLのカラムが最後にくるか、最初にくるか指定できる

NULLS LAST
NULLS FIRST
0723NAME IS NULL
垢版 |
2023/01/26(木) 15:27:44.63ID:???
>>717
>select文のfrom指定をインライビュー(副問い合わせ)にすれば問題ない。
つまり>>695のSQLは間違ってるんだな
じゃあまず正しいSQL示せ

その上で副問い合わせで指定した順序が最終の結果セットで保持されている根拠を示せ?
0724NAME IS NULL
垢版 |
2023/01/26(木) 15:29:45.58ID:0ZdAuIEw
>>723
インラインビュー内のSELECT文のソートは標準SQLで決まっているので、OracleDB固有の仕様ではない。

質問者はもういないんだから、あなたが検べてください。
0726NAME IS NULL
垢版 |
2023/01/26(木) 15:31:10.69ID:???
>>720
技術系の板で技術的に問題のある内容書いたらたたかれるのは当たり前
むしろそれは本来あるべき姿

つっこまれるような内容を連発するから機能不全になってるんだが

まあ
>ネットで質問して返ってくる内容なんて変なのばかり
そう思うならお前は回答するな
0727NAME IS NULL
垢版 |
2023/01/26(木) 15:34:10.33ID:0ZdAuIEw
ああそう
0728NAME IS NULL
垢版 |
2023/01/26(木) 15:34:46.93ID:???
>>722
>SQL-Server 使ってると order by 〜 nulls first は欲しいと思う
に対して
>UNION ALLでNULLレコードを最初に持ってくるか最後に持ってくるかをSELECT文で指定できる。
って解答がそもそもの発端なんだが、これお前の発言じゃないのか?
0729NAME IS NULL
垢版 |
2023/01/26(木) 15:35:16.15ID:0ZdAuIEw
>>726
データベース板は過疎板なんだけどな
0730NAME IS NULL
垢版 |
2023/01/26(木) 15:36:44.39ID:0ZdAuIEw
>>728
そうだったね。勘違いした。

Oracle だけじゃないけど SQL-Server 使ってると order by ~ nulls first は欲しいと思う
逆にちょっとした値を直書きしたい時に Oracle だと select ~ from (VALUES (1, 'one'), (2, 'two'), (3, 'three')) as t (num,letter); ってできないのが不満だわ
0731NAME IS NULL
垢版 |
2023/01/26(木) 15:40:38.39ID:???
>>724
標準SQLではインラインビューにORDER BYは書けなかったはずだが
ちなみに、どのレベルの標準SQLだ?
標準SQLの規格書手元にないから、書けるって根拠があるなら教えて
0732NAME IS NULL
垢版 |
2023/01/26(木) 15:41:35.97ID:0ZdAuIEw
>>728
SQL Serverの場合はunion allするselect文のfrom句に副問い合わせのselectでorder byができる。

自分も当初はSQL Serverのことを書いていたんだと思う。

それがOracleスレだから、OracleDBのSQLの話にすり替わってしまったようだ。

ごめんね。
0734NAME IS NULL
垢版 |
2023/01/26(木) 15:49:05.28ID:???
>>724
ボラクル君 また論破されて 嘘垂れ流しww
0735NAME IS NULL
垢版 |
2023/01/26(木) 15:52:52.94ID:???
>>732
>副問い合わせのselectでorder byができる
それは>>698にも書いてある通り
そして肝心なのはそこじゃなくて、それをunion (all)しても、結果の順序は保証されないってことだぞ
0736NAME IS NULL
垢版 |
2023/01/26(木) 15:55:31.24ID:???
>>708
serializableが満たすべき条件はSQL標準に明記してある
オラクルはそれを満たせてないが”マーケティング”上の理由から
serializableがサポートされてるかのように意図的に見せかけ何十年も嘘を付き続けてきた

オラクル使いでオラクル特有のserializable問題を把握できてないやつはモグリ
0737NAME IS NULL
垢版 |
2023/01/26(木) 16:00:58.44ID:???
Postgresは同じMVCCだからオラクルの嘘にならった形だが
その後本当のserializableを実装したのでオラクルの嘘から決別した
OSSの自浄作用
0739NAME IS NULL
垢版 |
2023/01/26(木) 18:15:15.47ID:???
>>725
だから構文はいいから
> unionした結果の行の順番は(全体としてのorder byがなければ)保証されないと思うが
> ORACLEならそれで全体の順序が保証されるってなら、根拠となる資料教えてくれ
の動作の話はどこに載ってるんだよ
そもそもUNIONの話なら
https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/The-UNION-ALL-INTERSECT-MINUS-Operators.html#GUID-B64FE747-586E-4513-945F-80CB197125EE
じゃねーのか?
まあこっちにもそんな記述は当然ないんだがw
0740NAME IS NULL
垢版 |
2023/01/26(木) 21:52:01.78ID:0ZdAuIEw
>>739
気持ち悪いと思うけど、FROM句の副問い合わせにするとORDER BY句が機能するようになっている。

これはOracleDBだけでなく、UION ALL時の仕様として定義されてしまった。

UION ALLは結果セットレコードの連結なので、それぞれのSELECT文はインラインビューでソートできる。

気持ち悪いのはわかるが、UNION ALLは集合演算をしていないので、そういうことができる方がいいと思いついた人間を責めてくれ。
0741NAME IS NULL
垢版 |
2023/01/26(木) 21:59:27.11ID:???
すげー伸びてると思ったら
いつもの人の異次元の言い訳だったw
0742NAME IS NULL
垢版 |
2023/01/26(木) 22:05:33.15ID:???
>>740
> お前の戯言はどうでもいいから
> > ORACLEならそれで全体の順序が保証されるってなら、根拠となる資料教えてくれ
> よろしく
0743NAME IS NULL
垢版 |
2023/01/26(木) 22:05:44.99ID:0ZdAuIEw
>>741
変なおっさんのせいだよ
0744NAME IS NULL
垢版 |
2023/01/26(木) 22:11:46.40ID:???
>>741
間違ってたのならゴメンナサイしとけばいいだけなのにね
0745NAME IS NULL
垢版 |
2023/01/26(木) 22:16:48.13ID:0ZdAuIEw
まあ、UNIONとUNION ALLは別物だから、奇妙に見えてしまう。

構文解析上は、内側のSELECT文を先に実行するから、製品マニュアルでもSELECT文の構文仕様としては可能になっている。

気持ち悪いのはよくわかるが、これはUION ALLの特徴だなら仕方ない。

何度も言うけど、これはOracle独自仕様ではない。
0746NAME IS NULL
垢版 |
2023/01/26(木) 22:17:38.24ID:0ZdAuIEw
>>744
ごめんねと書いたんだけど、あなたみたいにみんな読まないんだよ
0747NAME IS NULL
垢版 |
2023/01/26(木) 22:24:18.34ID:???
>>744
もうここまで拗らせたら無理だろw
根拠出せと言われて普通は黙るのにアホな妄想全開だし
0748NAME IS NULL
垢版 |
2023/01/26(木) 22:58:26.51ID:???
>>745
unionで内側ってなに?
構文を問題にしてるんじゃなくて、結果が保証されるかどうかを問題にしてるんだが?
オプティマイザって知ってるか?そもそも、SQL処理では構文と実行方法は一致しないのが原則なんだが

ちなみにオラクルって、そもそもオフセットとらないサブクエリのORDER BYが許されるのか?

>>746
オラクルと勘違いしてたんだろ
ならオラクルなら個別の順序が保証される根拠示せよ
ごめんねはいいから、いい加減な情報だすな
0749NAME IS NULL
垢版 |
2023/01/27(金) 00:23:44.16ID:???
ボラクル君は並列実行知らないんだなw
0750NAME IS NULL
垢版 |
2023/02/03(金) 01:35:52.82ID:???
脱オラクル方針でOracleは使えないためSQL Serverをスタディしてるんだが、ギャップが大きいなと感じることが多い。

・Transact-SQL(?)の最後の「GO」は、PL/SQLの無名ブロックとはちがうのか?
・CREATE INDEXが終わったのにINDEXが作られていない。代わりに「統計」が作られていて、忘れた頃にINDEXができてるのは仕様か?
・エラーメッセージリファレンスに「原因」や「対応方法」が書かれていないんだが、どうやって開発してるんだろう?
・そもそもドキュメントがあるのか? SQLServer⇔Oracleの移行ガイドが欲しい
0751NAME IS NULL
垢版 |
2023/02/03(金) 01:39:15.06ID:???
↑いろいろ書いたけど、質問は『 SQLServer⇔Oracleの移行ガイドが欲しい (がどんな形で見つかるか?)』 のところ。
0752NAME IS NULL
垢版 |
2023/02/03(金) 07:26:08.84ID:???
なぜこのスレで聞いてるんだ?
普通は移行先のスレで聞くだろ
0753NAME IS NULL
垢版 |
2023/02/03(金) 17:44:27.80ID:???
ここの住民でSQL Serverを知ってる人は多くない
0754NAME IS NULL
垢版 |
2023/02/03(金) 19:00:42.39ID:???
MSのサイトに移行ガイドあるでしょ
レスを投稿する


ニューススポーツなんでも実況