Oracle

【Oracle】ORA-01036の原因と解決方法|illegal variable name/number・バインド変数名/番号が不正です

OracleのORA-01036は、SQL内に存在しないバインド変数を渡したり、列名や表名をバインドしようとしたときに発生します。ORA-01008との違い、IN句、DDL、JDBC/Python、動的SQLでの修正例をまとめます。
Oracle

【Oracle】ORA-00911の原因と解決方法|invalid character・無効な文字ですの直し方

OracleのORA-00911は、SQL内にOracleが認識できない文字が含まれると発生します。セミコロン、スラッシュ、全角スペース、特殊文字、引用符、動的SQL、アプリ実行時の修正例をまとめます。
Oracle

【Oracle】ORA-01008の原因と解決方法|not all variables bound・バインド変数不足の直し方

OracleのORA-01008は、SQL内のバインド変数に値が渡されていないときに発生します。SQL Developer、名前指定、位置指定、EXECUTE IMMEDIATE、アプリ実装、動的SQLでの修正例をまとめます。
Oracle

【Oracle】ORA-00907の原因と解決方法|missing right parenthesis・右括弧がありませんの直し方

OracleのORA-00907は、括弧の閉じ忘れや括弧内の構文ミスで発生します。CREATE TABLE、FOREIGN KEY、CHECK制約、IN句、CASE式、サブクエリ、動的SQLでの修正例をまとめます。
Oracle

【Oracle】ORA-01427の原因と解決方法|single-row subquery returns more than one row・サブクエリの直し方

OracleのORA-01427は、1行だけ返る前提のサブクエリが複数行を返したときに発生します。IN、EXISTS、JOIN、集約、条件追加、ROW_NUMBER、UPDATE、重複データ確認での修正例をまとめます。
Oracle

【Oracle】ORA-00936の原因と解決方法|missing expression・SELECT/WHERE/INSERTの構文ミスを直す

OracleのORA-00936は、SQLに必要な式や値が抜けているときに発生します。SELECT、WHERE、INSERT/UPDATE、CASE式、GROUP BY/HAVING、関数引数、動的SQLで起きるパターンと修正例をまとめます。
Oracle

【Oracle】ORA-00933の原因と解決方法|SQL command not properly ended・LIMIT・UPDATE JOINの注意点

OracleのORA-00933は、SQL構文の末尾や句の位置がOracle文法に合っていないときに発生します。LIMIT、UPDATE JOIN、ORDER BY、DELETE JOIN、Oracle 23aiの直接JOIN、FETCH FIRSTへの書き換えまで実例で解説します。
Oracle

【Oracle】ORA-01861の原因と解決方法|TO_DATE・日付フォーマット・NLS_DATE_FORMATの注意点

OracleのORA-01861は、文字列の日付と書式モデルが一致しないときに発生します。TO_DATE、DATEリテラル、TO_TIMESTAMP、NLS_DATE_FORMAT、暗黙変換を避ける実務パターンまで解説します。
Oracle

【Oracle】IN句の使い方|複数値指定・サブクエリ・NOT INとNULL・EXISTSとの使い分け

OracleのIN句の使い方を、基本構文、複数値指定、サブクエリ、NULL、NOT IN、EXISTS、1000件制限、空リスト、大量INの対策まで実務向けに整理します。
SQL

【SQL Server】IN句に上限はある?大量指定が遅い原因とVALUES・一時テーブル・JOINでの対策

SQL ServerのIN句にOracleのような1000件固定制限はあるのか、大量INが遅くなる原因、8623/8632エラー、2100パラメータ、VALUES・一時テーブル・JOIN・テーブル値パラメータでの対策を整理します。
SQL

【SQL Server】テーブル一覧を取得するSQL|sys.tables・INFORMATION_SCHEMA.TABLES・sp_tablesの使い分け

SQL Serverでテーブル一覧を取得するSQLを、sys.tables、INFORMATION_SCHEMA.TABLES、sp_tablesの使い分け、スキーマ指定、テーブル名検索、作成日・更新日・行数確認まで整理します。
SQL

【SQL Server】datetimeから日付のみを取得・比較する方法|CONVERT(date)・CAST・範囲条件の使い分け

SQL Serverでdatetime列から日付のみを取得・比較する方法を、CONVERT(date)、CAST、インデックスを効かせる範囲条件、FORMATを避ける理由、日別集計の実務例まで整理します。
SQL

【MySQL】IN句に上限はある?大量ID指定が遅い原因と一時テーブル・JOINでの対策

MySQLのIN句にOracleのような1000件上限はあるのか、実務で問題になりやすいSQL長、プレースホルダ、型不一致、実行計画、max_allowed_packet、一時テーブルやJOINでの対策を整理します。
Oracle

【Oracle】バージョンを確認するSQL|V$VERSION・PRODUCT_COMPONENT_VERSION・SQL*Plusで確認

Oracle Databaseのバージョンを確認するSQLをまとめます。V$VERSION、PRODUCT_COMPONENT_VERSION、V$INSTANCE、DBMS_DB_VERSION、SQL*Plusの表示を使い分け、DB本体・パッチ・クライアントの違いを確認します。
SQL

【MySQL】ロックを確認する方法|SHOW PROCESSLIST・InnoDBトランザクション・待機SQLの調査

MySQLでロック待ちや処理停止が起きたときに、SHOW PROCESSLIST、INNODB_TRX、data_locks、data_lock_waits、SHOW ENGINE INNODB STATUSで待機SQLとブロック元を確認する手順をまとめます。
SQL

【SQL Server】空白を削除する方法|TRIM・LTRIM・RTRIM・REPLACEで前後・全角スペースを除去

SQL Serverで空白を削除する方法を整理します。TRIM、LTRIM、RTRIM、REPLACEで前後の空白、全角スペース、タブ、改行を除去するSQL例と注意点を扱います。
SQL

【SQL Server】LIMITの代わりに使うTOP・OFFSET FETCH|件数指定・ページング・ROW_NUMBERの使い分け

SQL ServerでLIMITの代わりに使うTOP、OFFSET FETCH、ROW_NUMBERを整理します。件数指定、ページング、グループごとの上位N件、ORDER BYや性能面の注意点まで扱います。
SQL

【SQL Server】複合インデックスの列順の決め方|等価条件・範囲条件・ORDER BYの考え方

SQL Serverの複合インデックスで列順をどう決めるかを整理します。等価条件、範囲条件、ORDER BY、JOIN、INCLUDE句、Missing Index提案の見直しまで扱います。
SQL

【SQL Server】Missing Indexの見方|不足インデックス提案をそのまま作ってはいけない理由

SQL ServerのMissing Indexの見方を整理します。実行計画の不足インデックス提案、DMVの確認SQL、そのまま作る危険性、候補の除外、既存インデックスとの統合、作成前後の検証まで扱います。
SQL

【SQL Server】インデックス断片化を確認・再構築する方法|REBUILD・REORGANIZE・sys.dm_db_index_physical_stats

SQL Serverのインデックス断片化を確認し、REBUILD・REORGANIZEを使い分ける方法を整理します。sys.dm_db_index_physical_stats、page_count、page density、統計情報、権限、ログ容量、実行前後の確認まで扱います。