4
票
承認済み
インデックスと ORDER BY の関係について
実際に効果があるかどうかは、 RDB の実装次第であるとは思いますが、基本的に、今回のインデックスが COL_A, COL_B, COL_C の3つの列に関する複合インデックスであり、かつ、例示されている select 文を実行するのであるならば、モダンな RDB であるならば高速な動作は期待出来ると思います。
具体的には、 index は基本的に BTREE ...
3
票
承認済み
文字コードSJISのファイルデータを文字コードUTF-8のデータベース(Oracle)に文字化けしないでプログラムで格納できますか?
C#のstringはUnicodeと定められています。つまり、外部とやり取りする際には常にエンコーディングの変換が行われます。Shift-JISのファイルを読むのであれば読み込みの際にエンコーディングを指定しますし、Oracleと接続する際にはOracle側とエンコーディングの整合が取られます。
後は、各々を正しく設定するだけの問題となります。
3
票
承認済み
.NETによる大容量ファイル(圧縮後のファイル容量が2GB)の圧縮/解凍方法について
.NET Core または .Net 5 ではZIPファイルのDeflate64フォーマットに対応しているため2GB以上のアーカイブも扱えます。
.NET Framework で2GB以上のZIPファイルを扱うのであれば、SevenZipSharp などを使用するのが良いと思います。
3
票
承認済み
Oracleで複数テーブルに同じシーケンスをinsertする方法
シーケンスはトランザクションとは無関係に更新されるので、整合性を保つには前者以外の方法は考えられません。
後者でやるのであれば、採番のためのテーブルを用意し、範囲が被らないよう排他制御する必要があるでしょう。
2
票
SQLで欠損日付のレコードを補完したい
ご教示いただいた方法で無事できました!ありがとうございます!
一応 BigQuery StandardSQL 版も記載しておきます。
#standardsql
WITH t_datelist AS (
SELECT FORMAT_DATETIME('%Y%m%d',DATETIME_SUB(CURRENT_DATETIME('+09:00'), INTERVAL 0 DAY)) as ...
2
票
承認済み
SQLで欠損日付のレコードを補完したい
shopnameとtargetdateのあるべき組み合わせを直積で求めて、その組み合わせに該当するsalescountを結合する(無ければ0)、でどうでしょうか。
(以下PostgreSQL9.2の実行結果)
create view myview(shopname, targetdate, salescount) as
select t1.shopname, t2.targetdate, ...
2
票
承認済み
SQL ServerでOracleのsqlplus���startコマンドのようなことはできますか?
sqlcmd でク���リを発行すれば、データベースやテーブルの作成が可能です。
sqlcmd -U ユーザー名 -P パスワード -S サーバー名 -Q "create database SampleDb01 on primary (name=dat1,filename='C:\temp\SampleDb01.mdf',size=10MB,filegrowth=10) log on (name=...
2
票
SQLで指定の条件に達した年度を出したい
標準的なSQLの範囲で書いてみました。
ある社員のある年度までの合計休暇日数の一覧を出して、10日を超えているもので絞り込み、年度の最小を出す、をそのまま書き下しています。
テーブル定義
CREATE TABLE IF NOT EXISTS PaidLeaveDays(
yeras int not null
, employee_id int not null
, ...
2
票
oracleの外部結合表現(+)からleft joinへの書き換えがうまくいきません
基本的な1対1の外部結合を理解されておられるようですので、1対nの外部結合は外部テーブル(今回のテーブルAに該当)に複数のleft joinできることを応用すれば解決できるはずです。
第三者への有益な情報を目指して簡単なところから記載します。
記載されているSQLは質問と若干違います。MySQLのテーブル構成および実行結果はSQL Fiddleのリンク先を参照してください。
...
2
票
承認済み
Oracleでユーザー作成時にデフォルト表領域を作成できない
すでに理解されていると思いますが、CREATE USERのDEFAULT TABLESPACEは既に作成済みの表領域を指定するものです。
表領域USERSを使うことは問題ではありませんが(※)、CREATE TABLESPACEで表領域を作成することができます。
※DEFAULT TABLESPACEを省略してSYSTEM表領域を使うことになるよりは、はるかに良い方法です。
2
票
sqlのカラムの命名規則について
「異なる意味なのに同じ名前」がややこしさの原因なので、「異なる意味なら異なる名前」になるようにするようにすればよいわけですが、これをどうするかはアプリケーション全体を見ないと決められない話です。
groupsのgroup_idの名前を変えるのが自明で短絡的な方法ですが、group_idが真にIDなのであればリレーションをそっちに張るとか、それならidいらないのではとか、...
2
票
承認済み
悲観的ロックとトランザクション分離レベルの関係性がよくわからない
どのようにトランザクション分離レベルを実装するかが、RDB ごとに少し違っていた記憶があるので、 MySQL に限定して回答を行います。
MySQL においては、トランザクション分離レベルと SELECT FOR UPDATE は、共に、トランザクションを並列でさばくための機構です。
MySQL において、トランザクション間の整合性は、次のような原則で動作します。
...
2
票
テキストファイルを元に OracleDB へ登録するバッチの良い作り方を教えてください
javaからテキストファイルを読み込み、JDBCを呼び出す一連の流れはできる前提で回答します。
難しく考えずにトランザクションを増やさなければ効率的な処理をすることができます。
高々1万件ならば、1回のトランザクションがDBに負荷を掛け過ぎるリスクは無視できるでしょう。
OK: つまりこの疑似コードは効率的です。(try-catch-finallyやrollbackは省略)
// ...
2
票
承認済み
sqlで大文字小文字区別なく検索できるようにできますか?
どのDBを使っているのかにより回答が変わりますが、以前Oracleタグが付いていたことがあるのでそれを前提に回答いたします。
MySQLやPostgreSQLなどを使用している場合はタグを追加してください。
本家SOの類似質問
大抵のDBには文字列を小文字に変換する関数があるので、それを使うことで対応可能です。
下記はOracleのlower関数を使う例です。
with TEST as (...
2
票
承認済み
WebSphere Application Server 9.0 に適当なユーザーIDでログインできてしまう
管理セキュリティが有効になっていないと,管理画面へのアクセスに認証は必要なくなります。管理コンソールを使用する際に入力するIDは,コンソールにアクセスしている複数のユーザーの区別にしか利用されません(管理作業を中断した場合,同じユーザーIDを使用すれば,続きから作業を復活できます)。
管理コンソールのユーザー管理画面から管理ユーザーを登録し,セキュリティの「管理セキュリティ」を有効にして,...
2
票
承認済み
VisualStudio2008でiniファイルを読み込んでOracleに接続する方法
いまいち何を求めているのかわかりませんが…質問文に答えるなら。
ODBC; Microsoft Open Database ConnectivityというAPIを使うことになるでしょうか。ODBCはインターフェースとドライバが分離されています。
インターフェース部分
かなり昔にOSに標準搭載されるようになっており、いつでも呼び出し可能。
ドライバ部分
ODBC Driver for ...
2
票
Word マクロ実行時に「応答なし」となり、ハングする。(リモートデスクトップ時は正常に動く)
情報が不足してるのとおそらく順を追って切り分けが必要なのでQ&Aで解決するのは難しい質問だと思います。
同じユーザーが別PCを使う、または同PCで別ユーザーが操作するとどうなるか
動かないマクロ���動くマクロがあるのか、動かないマクロの一部を切り出すとどうなるのか
マクロ付きファイルの置き場所やファイルの出力先を変えるとどうなるか
などなど、...
1
票
承認済み
C#Oracleからデータを取得し挿入
CSVとOracleと、それぞれ別のDataTableに読み込んでおき、LINQ to DataSetを用いて結合するのはどうでしょうか。結合結果からDataTableを構築することが可能ですので、最終目標のDataGridViewに表示することもできるはずです。
1
票
承認済み
主キー四つの場合、主キーの一部が最新のもの以外は削除するSQLが書きたい
考え方は合っています。
with句の中で書かれたSQLも最新レコードを取得するSQLとして正しいです。
ご質問のSQLとnot existsを組み合わせることで最新レコード以外の対象を取得可能です。
具体的なコードは書きませんが、上記のSQLで取得したレコードに対してカーソルを作成し、for文で1行ずつdeleteすることができます。
なお、私ならばfor文もgroup ...
1
票
SQL Serverでパラメータ名指定のパラメータBindは可能でしょうか?
パラメーターのプレースホルダーの使用 で説明されていますが、
SqlCommand = @parameter
OleDbCommand = ?
OdbcCommand = ?
OracleCommand = :parameter
となります。
1
票
承認済み
ORACLE SQLで全ての表に格納されている列名を取得したい。
やりたいこと
ある列名がどの表にあるか調べる
次のSQLで取得できるはずです(環境がなく実際に実行したわけではありません)。
select TABLE_NAME, COLUMN_NAME from DBA_TAB_COLS where COLUMN_NAME = '列名';
次のマニュアルを参考に回答しています。
Oracle(R) Databaseリファレンス 12c リリース1 (...
1
票
承認済み
SQLでカラム値の意味が動的に変わる場合の絞り込み方法について
インデックスも効かずスマートな方法ではありませんが、decodeかcaseを使うSQLで手っ取り早く実装することが可能です。
-- 疑似テーブル定義
with RESULT_VALUE as
(select 1 ID, '01' DETAIL_ID, 'V01' VALUE1, 'V02' VALUE2, 'V03' VALUE3 from dual union all
...
1
票
STSでのアプリケーションの起動に失敗する
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
エラーメッセージに原因がかかれているので、その内容通り、設定不足ではないかと思われます。
設定ファイル(application.propertiesなど)...
1
票
0,1の可変長フラグデータを扱う際のDBのデータ型について
DBの型はデータに対してネイティブな型にするのが基本です。
0,1の可変長データ(例:00000001、10000000001)
これだけを読むと前置0に意味があるデータのように見えますが、そうすると
現状NUMBER型で設計
これでは前置0が保存されません。
入力データが何か、DB上やそれを読み込むプログラム側でデータがどう扱われるのか、が定義できていないのだと思います。
数値演算(...
1
票
承認済み
0,1の可変長フラグデータを扱う際のDBのデータ型について
'0'と'1'だけを使う10進数として管理する場合
NUMBER型の最大精度は38のため、50桁の2進数('0'と'1'だけを使う10進数)はNUMBER型で管理できないと思います。
VARCHAR2を使うことになるでしょう。
INPUTの2進数のデータを10進数に変換して管理する場合
「領域サイズの面で有利なのは、NUMBERまたはVARCHAR2のどちらなのか」は、...
1
票
表領域の作成でエラー
以下の手順で解決しました。
コントロールパネルを開く。
管理ツールを開く。
サービスを開く。
SQL Server(インスタンス名)のプロパティを開く。
「ログオン」タブをクリック。
ログオンを「ローカルシステムアカウント」に変更し、「デスクトップとの対話をサービスに許可」をチェック、「OK」をクリック。
SQL Server(インスタンス名)を右クリックして再起動。
この投稿は @...
コミュニティ wiki
1
票
承認済み
SQLのwindow関数について
インラインビューが表 a として存在するものとします。
自己相関で a2 に action_id の候補を絞り、start_timestamp が直前となる一件を in_action_id とします。
該当する action_id がなければ、in_action_id は NULL になります。
SELECT DISTINCT a1.user_id
, a1.start_timestamp
, ...
1
票
sqlのカラムの命名規則について
まず、ややこしいと感じるかどうかは主��によるかな、と思います。
users.group_id が外部キーで、 groups のPKであるところの id 参照している、というのは私から見ると特に違和感はありません。
むしろ次のような場合だと違和感があります:
idがPKでない
groups.group_idやusers.user_idがPKである
users.group_idが、...
1
票
承認済み
sqlのカラムの命名規則について
ツールの制約もあるでしょうが、主キーは何を表すものかが分かるように修飾することをすすめます。
「ユーザーが見ることができる ID」は、name と同じくリレーションシップに意味のない文字列と受取りました。この名前を工夫すれば理解しやすくなるでしょう。
たとえば、下記のように変更してはどうでしょうか。
groups
- group_id (←id)
- id_friendly (←...
無効化に投票