X



Oracle 質問総合スレ14

0655NAME IS NULL
垢版 |
2022/12/21(水) 23:48:39.59ID:???
>>654
君の言うlengthと俺の言うlengthが違うだけ
OracleがなぜANSI準拠にできないのか仕組みを説明してあげたつもりだったんだがわかんないなら別にいい
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のサイトに移行ガイドあるでしょ
0756NAME IS NULL
垢版 |
2023/02/03(金) 22:09:36.99ID:???
>>750
>・Transact-SQL(?)の最後の「GO」は、PL/SQLの無名ブロックとはちがうのか?
用途として似通ってる部分はあるが違うものなのでリファレンス見たほうがいい
https://learn.microsoft.com/en-us/sql/t-sql/language-elements/sql-server-utilities-statements-go

>・CREATE INDEXが終わったのにINDEXが作られていない。代わりに「統計」が作られていて、忘れた頃にINDEXができてるのは仕様か?
それは無い。SSMSのキャッシュを更新してなかっただけじゃないか?

>・エラーメッセージリファレンスに「原因」や「対応方法」が書かれていないんだが、どうやって開発してるんだろう?
Oracleと違ってメッセージ見ればだいたい原因が分かるので都度リファレンスを見ることはない
ただリファレンスには原因も対応方法も書かれてると思うぞ
https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-1505-database-engine-error

>・そもそもドキュメントがあるのか? SQLServer⇔Oracleの移行ガイドが欲しい
https://learn.microsoft.com/en-us/sql/sql-server/migrate/guides/oracle-to-sql-server
0757NAME IS NULL
垢版 |
2023/02/04(土) 18:44:33.85ID:bA18J4qs
>>756
マイクロソフト製品の宣伝書き込みをここでするな!

SQL Serverのスレッドは別にちゃんと作ってある。

SQL ServerからOracleDBへの移行はオラクル社がドキュメントをちゃんと用意している。

OracleDBからSQL Serverへの移行は、マイクロソフト伝統で力の入っていないドキュメントしかない。

さらにマイクロソフトのタチが悪いところは、OracleDBの製品仕様を間違って解説しているところ。

Oracleより安いけど、ドキュメントもそれなりの信用できない内容のものしかない。
0758NAME IS NULL
垢版 |
2023/02/04(土) 19:30:53.09ID:???
>>757
質問に対する回答なんだし、宣伝でもなんでもないけどな
スレ違いだって文句は元質問者に言えよ

ところで
>OracleDBの製品仕様を間違って解説しているところ。
を、具体的に説明してくれないか
0762NAME IS NULL
垢版 |
2023/02/09(木) 21:47:17.21ID:???
4000文字と4000Byteは明らかに違うだろ
TwitterはOracleではなく自作のKVSを主に使ってる
そのKVSのストレージエンジンに今はRocksDB採用してる
0764NAME IS NULL
垢版 |
2023/02/10(金) 01:28:32.61ID:???
ページサイズやで
0765NAME IS NULL
垢版 |
2023/02/10(金) 06:09:34.85ID://UV7UJE
可変長で 2GByte ってのはすごいね。
よく Oracle の新機能は、大規模ユーザーからのニーズに由来すると言うけれど、
SQL Server の、2GB の VARCHAR 列はどんなニーズに基づくんだろう。
0766NAME IS NULL
垢版 |
2023/02/21(火) 19:09:07.40ID:???
先日は、場違いのSQL Serverについて答えてくれてありがとう。これは質問ではないけど、後日談ということで。

SQL Serverもなんとか使えるようになって、管理ツール(SMSS)の使い勝手の良さなどは、さすがMSならではと感心する。

一方、Oracleで起こらなかった致命的な不具合も早々に経験した。具体的には下記エラーで表が壊れてしまう。
特別に変なことしたわけじゃなく、クライアント側がメモリ不足でアボートしたところ、SQL Server側で索引と表が壊れ、データが消失した。
データを保護したくてお金を出してるのに、これじゃあ意味ないじゃん。(多分、自分の使い方が悪いとは思う)

https://learn.microsoft.com/ja-jp/sql/relational-databases/errors-events/mssqlserver-605-database-engine-error

Oracleだって異常終了はあるけど、媒体障害を除いて、データベースを壊したことは一度もなかった。設計の思想が違うんだろうね。
脱オラのトレンドは当分変わらないとは思うが、本当に大事なのはデータ/可用性/業務パフォーマンスだと主張するのにも
現物を使った経験で裏付けられるのは良かったかなと思う。ではでは
0767NAME IS NULL
垢版 |
2023/02/21(火) 21:31:58.13ID:???
>>766
マジで!!?
大昔のバージョンならともかく2005以降のバージョンでそんな単純な状況でデータ消失なんて初めて聞いた
原因はともかくチケット使って対応してもらったほうがいいんじゃないか
0768NAME IS NULL
垢版 |
2023/02/21(火) 21:38:42.41ID:???
ハードウェアの多重障害、アプリのバグ、ミスオペを除くと
トランザクションログ有りのRDBMSでのデータ消失は
SQLiteでしか経験したことがないな
0769NAME IS NULL
垢版 |
2023/02/22(水) 01:40:56.15ID:???
昔のSQL Serverはなにかあるとすぐdbcc checkdbしてくださいって言われた気が
まあそれでもデータ損失とかめったになかったけど
0770NAME IS NULL
垢版 |
2023/02/23(木) 14:52:22.35ID:???
トランザクション管理外でのBULK LOAD/APPEND中に処理が落ちて
対象テーブルがCORRUPT状態になるというのならよくある普通の話
でもSQL Serverでそういう操作はなかったように思う
あってもこの手の処理はCORRUPT状態になっても簡単に再作成できるデータにしか使わない
0771NAME IS NULL
垢版 |
2023/02/25(土) 11:03:34.24ID:???
Oracle CX Sales勉強したいんだけど教材は何が良いの?
0772NAME IS NULL
垢版 |
2023/03/23(木) 00:26:46.19ID:Fx0jB2LM
>>771
オラクル社の英語のドキュメント
マイナーなパッケージソフトについて説明する人間がいるはずがない
0773NAME IS NULL
垢版 |
2023/03/23(木) 00:28:40.28ID:Fx0jB2LM
>>771
オラクル社の講習があると思うよ。
パッケージソフトは使う側がわからないんだったら、買わないという選択肢があったはずなのに買ってしまったのを悔いるしかない。
0774NAME IS NULL
垢版 |
2023/03/24(金) 07:55:18.00ID:???
PHP 900,000円/月 JAVA 800,000円/月 SNSのフリーランス広告で流れてきた。
あからさまにPHPの案件に強いと言ってるようだけど。やばくね?
0776NAME IS NULL
垢版 |
2023/05/28(日) 05:06:23.09ID:A5dqGJ8X
あげ
0777NAME IS NULL
垢版 |
2023/05/28(日) 07:45:11.40ID:???
>>775
面白そうだけど遊ぶには要件が厳しくて、古いXEとさほど変わらない

* フォアグラウンドプロセス用に2CPUを搭載
* 2GBのRAM(SGAとPGAを合わせた容量)
* ディスク上のユーザーデータ12GB(圧縮率に関係なく)
0778NAME IS NULL
垢版 |
2023/06/13(火) 23:15:11.29ID:???
かなり古いオラクル(11g)を動かしていたのですが
アーカイブ領域パンクしてしまいSQLplusも12560で繋がらない...
リスナーは稼働中です

もし復旧方法わかるわかる方いらっしゃったら教えてください。
0779NAME IS NULL
垢版 |
2023/06/14(水) 00:22:06.36ID:???
自己解決しました。おじゃましました。
0780NAME IS NULL
垢版 |
2023/06/14(水) 16:11:06.26ID:14/Kwe66
ORA-12560はだいたい接続設定ミスだし、そもそもリスナー経由で接続していたら、インスタンスが落ちていれば、ORA-12560になるわな。
0781NAME IS NULL
垢版 |
2023/06/14(水) 17:18:15.48ID:???
この場合、インスタンスは落ちてないのでは?
0782NAME IS NULL
垢版 |
2023/06/14(水) 19:41:26.23ID:???
sys dbaならSQL plus繋がりましたので
ノーアーカイブモードにしてRMANでアーカイブ削除、
アーカイブモードに戻して復旧しました。
おじゃましました。
0783NAME IS NULL
垢版 |
2023/06/14(水) 23:32:50.27ID:???
アーカイブログの削除は定期的にね
0784NAME IS NULL
垢版 |
2023/08/17(木) 17:43:15.78ID:mNefGHHA
教えてください。
Oracle12cでDBCAを使って2つのDBを作成したのですが、2つ目のDBを作成すると1つ目に作成したDBのインスタンスが起動しなくなってしまいます。
2つ目のDB作成直後は両方のDBに接続できるのですが、1つ目のサービスを再起動するとORA-12514で繋がらなくなります。
tnspingは問題なく、lsnrctrl statusを確認すると2つ目のサービスのみ起動している状態です。
どうも2回目のセットアップで1回目の設定ファイルか何かを上書きしてしまっているのではないかと勘繰っているのですが、そんな形跡もなく
同じような症状あった方、原因わかりましたら宜しくお願い致します。
0785NAME IS NULL
垢版 |
2023/08/18(金) 18:12:40.52ID:???
TCPポートが被ってるとかでは
0786NAME IS NULL
垢版 |
2023/08/20(日) 21:23:14.48ID:3ABm4kAE
>>785
返信ありがとうございます。何とか解決できました。
10付近のOracleのDBCAで作成するとそんな動きになってしまうようです。
https://www.shift-the-oracle.com/oracle/pfile-spfile.html
この※要注意の部分に書かれていました。LRM-00109でPFILEが無いと言われてSPFILEがあるのに何でPFILE見に行ってるんだろう?とドツボにはまりましたが
バックアップされていたPFILEがあったのでstartupコマンドでpfile指定したらうまく起動しました。
お騒がせしました。
0787NAME IS NULL
垢版 |
2023/12/23(土) 00:02:57.32ID:UXD9Vkjl
sqlplusでの接続が遅い場合、どのような原因が考えられるでしょうか?
SQLの実行自体は早いのですが、接続に20秒ほどかかります。
半年くらい前は1秒以内に接続できてました。
0788787
垢版 |
2023/12/23(土) 00:04:27.49ID:???
>>787です。
Oracle 19cです。
また、DB再起動とリスナー再起動は試しました。
0789NAME IS NULL
垢版 |
2023/12/23(土) 07:01:55.91ID:???
名前解決に時間がかかるとか
OSIの7層モデルなんかを参考にしてどのレイヤで、どれだけ時間を要してるか計るといい
死んだDNSサービスを参照していたり、多重化したサービスが縮退していて時間がかかってるかもしれない
0790NAME IS NULL
垢版 |
2023/12/23(土) 14:03:45.52ID:???
リスナー再起動後に接続すると待たされることはよくある。
数分後に再度試すとすんなり繋がる。
0791NAME IS NULL
垢版 |
2023/12/23(土) 15:33:38.24ID:jR9IfpqJ
>>788
tnsnames.oraのホスト指定がIPアドレスなのか、ホスト名なのかぐらい書こうよ。
0792NAME IS NULL
垢版 |
2023/12/23(土) 15:36:34.28ID:jR9IfpqJ
>>786
OracleDBはひとつのノードに複数のデータベース(CDB)を作る運用はもともと想定していない運用で、一般的ではないからな。
0793787
垢版 |
2023/12/25(月) 19:02:37.67ID:???
>>789
DNSサービスが遅いか否か調査してみます。
ありがとうございます。

>>791
tnsnames.oraのホスト指定はIPアドレス指定です。
0794NAME IS NULL
垢版 |
2024/01/15(月) 11:27:04.22ID:???
Oracle Database Gateway for ODBCをつかってSymfowareのテーブルをOracleで操作できるようにしたいんですけど設定してみたらselectはエラーなく走るんですが件数が0件で取得されます
フィールドは正常に取得できているので接続自体はできていると思うのですが原因等わかる方はいますか?
ちなみに、設定してあるODBCでA5:SQLを使って接続すると中身のデータも確認できます

Oracle DBのバージョンは12cR2です
0795NAME IS NULL
垢版 |
2024/01/18(木) 18:08:37.15ID:5Fh8ou4p
SELECT文のフェッチレコード数はROWCOUNTとは何も関係ない。

ROWCOUNTの件数を常に表示するツールだと、SELECTの結果が0件だと表示される。
0796NAME IS NULL
垢版 |
2024/01/18(木) 19:33:10.39ID:???
>>795
>>794です。
件数が0件と記載してましたが、問題はそこではなく中身のデータがselectできません。
osqledit,A5:SQL,sql plusのそれぞれで試しましたがORACLEで作成したDBLINK経由だとデータが取得できませんでした。
0797NAME IS NULL
垢版 |
2024/01/19(金) 00:18:55.78ID:9hpZjc6Z
別人にかな?
0798NAME IS NULL
垢版 |
2024/02/11(日) 22:12:19.46ID:aAn5h9VQ
>>796
句読点の使い方も完全に異なるから、あなたは別人と判断した
0799NAME IS NULL
垢版 |
2024/02/11(日) 22:18:01.74ID:aAn5h9VQ
SymfowareのテーブルをOracleDBのデータベースリンクを使って検索するというネタか
0800NAME IS NULL
垢版 |
2024/03/01(金) 16:22:48.84ID:???
わかんねぇならわかんねぇって素直に言えよカス
変なレスしてくんなゴミ
0801NAME IS NULL
垢版 |
2024/03/01(金) 21:46:10.75ID:de+S3zuZ
データベースリンクはOracleDB同士のリンクだからな
0803NAME IS NULL
垢版 |
2024/03/01(金) 21:59:46.89ID:???
SEごっこして遊んでるやつはどっか行けよ
そんなもん見てるに決まってんだろゴミ
何でもかんでも公式のホームページに全部の情報が載ってると思うなよクソニート
そもそもその記事を見てなんでOracle同士の話だと思うんだよ
理解できてないなら黙っとけカス
0804NAME IS NULL
垢版 |
2024/03/01(金) 22:35:30.79ID:de+S3zuZ
>>803
Oracle DatabaseのデータベースリンクはOracle Database同士の接続機能だ。
0805NAME IS NULL
垢版 |
2024/03/01(金) 22:37:58.92ID:de+S3zuZ
>>803
あなたは読んでないと思うよ?

Oracle Database Gateway for ODBCは、OracleDBにただデータベースリンクを作ればいい話ではない。
0806NAME IS NULL
垢版 |
2024/03/01(金) 22:40:55.97ID:de+S3zuZ
OracleDBがデータベースリンクを介してODBCで外部と接続するというのは、書いてある通り、簡単な話ではない。

別会社の別製品同士を繋ぐのは、すぐにバグにはまるから、こんなのやめた方がいい。
0808NAME IS NULL
垢版 |
2024/05/05(日) 11:21:20.90ID:m+gdifda
てすてす
レスを投稿する


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