「トラブル対応」カテゴリーアーカイブ

トラブル対応に関する記事です

Excelで「この数式には問題があります」と出る原因と対処法

Excelで数式を入力したときに、突然

「この数式には問題があります」

というメッセージが表示され、計算が進まないことがあります。
特に初心者の方にとっては、どこが間違っているのか分かりづらいエラーのひとつです。

この記事では、このエラーメッセージが出る主な原因と具体的な対処法について解説します。


💡 エラーメッセージの意味

このエラーは「数式の文法(構文)が正しくない」ことをExcelが検出した際に表示されます。
つまり、Excelが「計算の内容を理解できない」状態です。

例:

=IF(A1>1

↑ IF文が不完全のため構文エラー。


🧠 主な原因と対処法まとめ

原因具体例対処法
① 括弧の閉じ忘れ!ERROR! B2 -> Formula Error: Expecting ')'括弧を正しく閉じる:=IF(A1>0,"OK","NG")
② 不正な記号の使用!ERROR! B3 -> Reaching fourth argument of an IF不要な記号(, や +)を削除
③ 引用符の不一致="HelloHello のようにダブルクォーテーションを閉じる
④ 日本語全角文字の混在=A1+B1半角の「=」「A1」「+」を使用
⑤ 数式の先頭が「=」で始まっていないA1+B1=A1+B1 とする
⑥ Excelが関数名を認識できない#NAME?正しい関数名(SUM)に修正
⑦ 引数区切りの誤り=IF(A1>10; "OK"; "NG")Excel日本語版は「,」区切り:=IF(A1>10, "OK", "NG")

🛠 よくあるケース別のチェックポイント

ケース①:IF関数やVLOOKUPでエラーが出る

  • 括弧の数やカンマの位置を確認

  • 引数が正しい順序になっているかチェック
    対処例

=IF(A1>100,"大","小")

間違って IF(A1>100,"大","小" のように閉じ忘れがないか確認。


ケース②:文字列を扱うとき

文字列を囲む 「”(ダブルクォーテーション)」 を忘れるとエラーになります。

=IF(A1="完了","済","未")

"完了" のように必ず「”」で囲みましょう。


ケース③:セル参照が間違っている

存在しないセルやシート名を指定してもエラーになります。

=Sheet2!A1

→ シート名のスペルが正しいか確認。
シート名にスペースがある場合は 'Sheet 2'!A1 のようにシングルクォートで囲みます。


🧹 トラブルを防ぐためのポイント

対策項目内容
オートコンプリート機能を利用関数名の入力途中で候補が出るためタイプミスを防げる
数式バーを拡大表示長い数式を入力するときに構文エラーを見つけやすい
数式タブの「数式の検証」を使用計算前に数式の正当性をチェックできる
半角英数字で入力する全角入力モードのままだと記号が不正になる場合あり

🧾 補足:地域設定による違い

Excelでは「引数の区切り記号」が地域設定により異なります。

対策項目内容
オートコンプリート機能を利用関数名の入力途中で候補が出るためタイプミスを防げる
数式バーを拡大表示長い数式を入力するときに構文エラーを見つけやすい
数式タブの「数式の検証」を使用計算前に数式の正当性をチェックできる
半角英数字で入力する全角入力モードのままだと記号が不正になる場合あり

※ 海外のテンプレートをコピーした場合、この違いでエラーになることがあります。


✅ まとめ

Excelで「この数式には問題があります」と表示されるのは、
構文ミス・全角混在・関数名の誤り が主な原因です。

🔍 対処の流れ

  1. 括弧やクォーテーションの数を確認

  2. 数式の先頭が「=」で始まっているか確認

  3. 区切り記号(, / ;)を見直す

  4. 全角文字を含んでいないか確認

これらを押さえておけば、エラーの原因をすぐに見つけて修正できます。

Oracle「ORA-04031: 共有メモリーが不足しています」対処方法まとめ

🧩 エラー概要

ORA-04031: unable to allocate n bytes of shared memory
日本語メッセージ:

ORA-04031: 共有メモリーが不足しています

このエラーは、OracleのSGA(System Global Area)やPGAなどの共有メモリ領域でメモリ割り当てに失敗したときに発生します。
特にshared poollarge poolなどの領域でメモリフラグメンテーション(断片化)が進行している場合によく見られます。


💡 主な発生原因

原因カテゴリ内容
メモリ断片化多数のPL/SQL・パッケージのロード/アンロードが繰り返され、shared poolが細切れになっている
メモリ不足SGA_TARGET や SHARED_POOL_SIZE の設定が小さすぎる
キャッシュ肥大化SQL文キャッシュやライブラリキャッシュに古い情報が溜まっている
パラメータ不整合自動メモリ管理(AMM)設定が中途半端な状態になっている
一時的な負荷増大大量のSQL・セッションが一斉に発生したタイミング

🔍 事前チェックポイント

確認項目SQL例補足
現在のSGAサイズSHOW PARAMETER sga_target;自動メモリ管理を利用中か確認
各プールサイズSHOW PARAMETER shared_pool_size;shared/large/java pool の値を把握
メモリ利用状況SELECT * FROM v$sgastat WHERE pool='shared pool' ORDER BY bytes DESC;メモリ断片化を確認
フラグメンテーションSELECT * FROM v$sgastat WHERE name LIKE '%free memory%';空きメモリの分布を確認
エラー履歴SHOW ALERT; または alert.logORA-04031発生の時刻と頻度を確認

🛠 対処方法まとめ

対処方法内容
1. メモリサイズを増加ALTER SYSTEM SET shared_pool_size=800M SCOPE=SPFILE; などでサイズを拡張し、DB再起動
2. キャッシュのフラッシュ一時的な対応として ALTER SYSTEM FLUSH SHARED_POOL; を実行(夜間・非稼働時間帯推奨)
3. 自動メモリ管理(AMM)の活用MEMORY_TARGET / MEMORY_MAX_TARGET を適切に設定して自動調整を有効化
4. パッケージのピン止めDBMS_SHARED_POOL.KEEP('パッケージ名'); で頻繁に使うPL/SQLを保持し、再ロードを防止
5. 不要なSQLキャッシュ削除不要なセッションや古いSQLを明示的に削除してキャッシュ整理
6. アップグレード・パッチ適用特定バージョンでのバグが原因のケースもあり、最新パッチ適用を検討

📊 対策効果の比較

対応内容即効性永続性備考
shared poolの拡張再発抑止に効果的
shared pool flush×一時的(再断片化する)
AMM設定の見直し自動調整により安定化
パッケージKEEP化頻繁な再ロードを防止
不要SQL削除効果は一時的
Oracleパッチ適用バグ起因なら必須

⚙️ 設定変更例(SPFILE使用時)

再起動:


🧠 再発防止のポイント

観点内容
コーディング不要に動的SQLを多用しない(バインド変数活用)
運用長期間稼働するインスタンスでは定期的に再起動を検討
監視V$SGASTAT, AWRレポート, alert.logを定期確認
自動チューニングADDMやASHレポートの活用で根本分析

🧾 まとめ

  • ORA-04031はメモリ断片化・不足・キャッシュ肥大が主原因

  • shared pool拡張 + AMM設定で再発防止が可能

  • 一時的な回避策としてFLUSH SHARED_POOLも有効だが、根本解決には設定見直しが必須

安定稼働を目指すなら、AWRレポートによる定期分析とパッケージKEEP化を組み合わせるのがベストです。

🧩 Oracle「ORA-01000: 最大オープン・カーソル数を超えました」対処手順

🔍 エラー概要

項目内容
エラーコードORA-01000
メッセージ最大オープン・カーソル数を超えました
発生原因開いたカーソルをクローズせずに処理を繰り返した結果、open_cursors の上限に達した
対応優先度高(アプリケーション修正・設定見直しが必要)

🧠 原因と仕組み

Oracle では、SQL 実行時に「カーソル」という内部ハンドルを使用して SQL 文を管理します。
アプリケーションが PreparedStatementResultSet を閉じずに再利用し続けると、未解放のカーソルが蓄積し、open_cursors パラメータで設定された上限値を超えた時点で ORA-01000 が発生します。


🧩 よくある原因パターン

原因詳細
JDBCのクローズ漏れResultSet や Statement を close() していない
ループ内で毎回 SQL を preparePreparedStatement を都度生成して再利用していない
コネクションプールの設定ミスコネクションが正しく解放されず、カーソルが残存
長時間実行バッチ同一セッションで大量SQLを連続実行してカーソルが累積
外部ライブラリのバグORM(MyBatis、Hibernate等)でのカーソル管理不具合

🧭 対処法(順序付き)

手順対処内容
アプリケーションコードを点検(ResultSet, Statement, Connection を確実に close)
try-with-resources 構文を使用して自動クローズ化(Java7以降推奨)
open_cursors パラメータ値を確認(show parameter open_cursors;)
必要に応じて上限を引き上げ(例:ALTER SYSTEM SET open_cursors = 1000 SCOPE=BOTH;)
v$open_cursor ビューで調査(どのSQLが残っているか確認)

🔧 調査SQL例 


💡 Javaでの修正例(try-with-resources構文)

✅ これにより、ResultSetPreparedStatementConnection が自動的にクローズされます。


⚙️ open_cursors の推奨設定値

システム規模推奨値備考
開発・検証環境300〜500検証負荷に応じて柔軟に設定
小〜中規模業務システム500〜1000通常アプリでは十分
大規模バッチ・Webサービス1000〜2000コネクションプール利用時に余裕をもたせる

🚨 注意点

  • open_cursors の値を単純に上げるだけでは根本解決になりません。
    アプリケーションでのクローズ処理修正が最優先

  • 定期的に v$open_cursor を監視することで、リークを早期発見できます。


✅ まとめ

観点内容
発生原因カーソルの未クローズや過剰生成
一時対応open_cursors の増加
根本対応コード修正(try-with-resources等)
チェック方法v$open_cursor / v$sesstat ビュー
再発防止コーディング規約・静的解析の導入

サイトの表示速度が遅い原因はこれ!画像の最適化で劇的改善

ブログなどの「サイトが重い」「表示に時間がかかる」と感じていませんか?
実は、その原因の1つに 画像の最適化不足 にあります。
どんなに優れたデザインや記事内容でも、ページの読み込みが遅いと離脱率が上がり、SEO評価も下がります。

この記事では、画像の最適化でブログの表示速度を劇的に改善する方法を、初心者でもできる手順で解説します。


🚨 表示速度が遅くなる主な原因

原因内容
画像サイズが大きい高解像度の画像をそのままアップロードしている
フォーマットが古いJPEGやPNGを多用し、WebPなどの軽量形式を使っていない
遅延読み込みが未設定ページ内の全画像を一度に読み込んでいる
キャッシュ未設定同じ画像を毎回サーバーから再取得している
CDN未使用地理的に離れたユーザーへの配信が遅れている

これらの要因を1つずつ対策すれば、PageSpeed Insightsのスコアが90点以上も狙えます。


💡 改善策①:画像を最適なサイズに圧縮する(WordPress対応)

ブログの表示速度改善において最も効果的なのが画像圧縮とリサイズです。
特にスマホ撮影画像やAI生成画像は数MBになることもあるため、1枚100KB以下を目指しましょう。


🔧 方法①:外部ツールで手動圧縮

ツール名特徴URL
TinyPNGPNG・JPEG対応。画質を保ちながら最大80%圧縮https://tinypng.com
Squoosh(Google製)WebP変換や画質比較ができるhttps://squoosh.app
ImageOptim(Mac)複数画像をドラッグ&ドロップでまとめて圧縮https://imageoptim.com

コツ:

  • 不要に大きい画像は横幅1200px程度にリサイズ

  • JPEGは写真向き、PNGは透過画像向き

  • 画質80%前後に設定すると肉眼ではほぼ違いなし


⚙️ 方法②:WordPressプラグインで自動圧縮

WordPressで作成されているサイトなら画像のアップロード時に自動圧縮してくれるプラグインを使えば、毎回手動で調整する必要がありません。
更新頻度の高いブログや、複数人で運営しているサイトに最適です。

プラグイン名主な機能無料範囲備考
EWWW Image Optimizer自動圧縮・WebP変換・既存画像一括最適化無制限(ローカル圧縮)高機能で安定
Imagify3段階圧縮(Normal/Aggressive/Ultra)+WebP対応月25MBまで無料操作が簡単
ShortPixelWebP+AVIF変換対応。画質維持率が高い月100枚まで無料自然な仕上がり
Smush一括最適化・遅延読み込み・CDN対応無料で5MB/画像定番&安心

🔹 EWWW Image Optimizer の設定例

  1. プラグインをインストールして有効化

  2. 「設定」→「EWWW Image Optimizer」を開く

  3. 「画像の自動最適化」を有効にする

  4. 「WebP変換」をONに

  5. 「既存画像を一括最適化」でライブラリ全体を処理

💡 ポイント: 初回は時間がかかりますが、次回以降は差分のみ圧縮されます。


💡 改善策②:WebP形式に変換する

WebPはGoogleが開発した次世代画像フォーマットで、JPEGより最大50%軽量化できます。
見た目の劣化もほとんどなく、主要ブラウザはすべて対応済みです。

プラグイン名主な機能
EWWW Image Optimizer自動WebP変換+フォールバック機能
Imagifyアップロード時に自動変換+圧縮
ShortPixelWebPとAVIFを両方生成

導入のメリット:

  • 軽量化によりLCP(Largest Contentful Paint)が改善

  • モバイルでの読み込み体感速度が向上

  • SEOスコアにも良い影響


💡 改善策③:遅延読み込み(Lazy Load)を有効化

ページを開いた瞬間に全画像を読み込む必要はありません。
**Lazy Load(レイジーロード)**を有効化すれば、
「ユーザーの画面に表示されたタイミングで読み込む」ようになります。

設定方法

  • WordPress 5.5以降:標準で loading="lazy" が自動付与

  • プラグイン利用例:

    • a3 Lazy Load

    • WP Rocket(有料)

    • Smush(画像圧縮+遅延読み込み対応)

💬 Lazy Loadを導入するだけで、初期ロード時間を30〜40%短縮できる場合があります。


💡 改善策④:CDNを活用する

CDN(Content Delivery Network)は、
世界中のサーバーに画像をキャッシュして、
ユーザーの位置に近いサーバーから配信します。

サービス名特徴
Cloudflare無料プランでも画像CDNが利用可能
Jetpack BoostWordPress専用CDN(Photon)対応
AWS CloudFront高速&安定。企業向けに最適

💡 改善策⑤:キャッシュプラグインを活用

画像最適化とあわせて、HTMLやCSSもキャッシュ化するとさらに高速化します。

プラグイン名特徴
LiteSpeed Cache画像圧縮・WebP・CDN・Lazy Load全部入りで高性能
WP Fastest Cacheシンプル操作で安定した効果を発揮
W3 Total Cache細かなチューニングが可能で上級者向け

🧠 Tip: LiteSpeedサーバー環境なら、LiteSpeed Cache一択でOKです。


🧪 改善効果の実例

項目最適化前最適化後改善率
トップページ画像10枚約6.2MB約1.8MB約70%削減
PageSpeed Insightsスコア63点91点+28ポイント改善
読み込み速度(3G環境)5.8秒2.1秒約3.7秒短縮

🧭 まとめ:画像最適化は“SEOとUX”の両方に効く!

  • 📉 無駄なデータ転送を削減 → 表示速度アップ

  • 📈 Core Web Vitals改善 → SEO評価向上

  • 😍 ユーザー離脱率を下げて滞在時間を増加

画像最適化=ブログの信頼性向上です。
一度設定しておけば、自動で軽量化される仕組みが完成します。
今日からあなたのブログも、「速くて軽い」理想のサイトへ変わります!

🪟 Windows 11:PINやパスワードを忘れたときのリセット方法

Windows 11では、MicrosoftアカウントやPINコードを使ってログインするのが一般的です。
しかし、「PINを忘れた」「パスワードを思い出せない」といったトラブルは誰にでも起こります。
この記事では、Windows 11でサインイン情報をリセットする方法をわかりやすく解説します。

この記事でわかること

  • PINやパスワードを忘れたときのリセット手順

  • ローカルアカウント・Microsoftアカウントの違い

  • トラブル時に試すべき順序と注意点


🧭 1. まず確認!どのタイプのアカウントか?

アカウント種別特徴リセット方法
MicrosoftアカウントOutlook、OneDriveなどと連携Web経由でリセット可能
ローカルアカウントPC単体で使うオフラインでパスワード変更可能
会社や学校アカウント(Azure AD)組織管理下のPC管理者またはIT部門に依頼

確認方法(通常時):
「設定」→「アカウント」→「あなたの情報」→「アカウントの種類」で判別できます。
サインインできない場合は、ログイン画面に「Microsoftアカウントでサインイン」と出ていればオンライン型です。


🔑 2. PINを忘れたときのリセット手順

✅ サインイン画面から再設定する

  1. ログイン画面で「PIN(I forgot my PIN)」をクリック

  2. Microsoftアカウントのパスワードを入力

  3. 登録しているメールまたは電話に確認コードが届く

  4. 新しいPINを設定して完了

💬 補足:PINはローカルPCにのみ保存されるため、他のデバイスには影響しません。


🌐 3. Microsoftアカウントのパスワードを忘れた場合

手順内容
スマホや別PCから https://account.live.com/password/reset にアクセス
登録メールまたは電話番号を入力
セキュリティコードを受け取り入力
新しいパスワードを設定

ポイント:

  • セキュリティ情報を事前に設定していないとリセットが難しくなります。

  • その場合、「追加情報の提供を求める」フォームから本人確認が必要です。


💻 4. ローカルアカウントのパスワードを忘れた場合

方法1:パスワードリセットディスクを使う

以前に作成したUSBキーを挿して「パスワードをリセット」を選択。
作成していない場合は、次の方法へ。

方法2:セーフモード+コマンドプロンプトで再設定

※上級者向けの手順です。

  1. 電源ボタンを押して再起動 → ログイン画面で「Shift」+「再起動」

  2. 「トラブルシューティング」→「詳細オプション」→「コマンド プロンプト」

  3. 以下を入力して新しいユーザーを作成


  1. 再起動後、「NewUser」でログインし、既存アカウントのパスワードを変更。


🧱 5. サインインオプションからPINを再設定する方法(設定から)

手順操作内容
「設定」→「アカウント」→「サインインオプション」
「PIN(Windows Hello)」を選択
「削除」→「新しいPINを設定」
再ログイン後にPINを再登録

⚠️ 一部環境では「この設定は組織によって管理されています」と表示され、管理者権限が必要な場合があります。


🧠 6. トラブルを防ぐための事前対策

対策項目内容
セキュリティ情報の登録Microsoftアカウントに電話番号・予備メールを登録
PINのバックアップメモ帳やパスワードマネージャーに控える
ローカルアカウントの予備作成管理者権限のバックアップユーザーを追加
パスワードリセットディスクの作成「コントロールパネル」→「ユーザーアカウント」から作成可能

🧩 7. どうしてもログインできない場合の最終手段

  • **リカバリドライブ(USB)**から起動し、Windowsを再インストール

  • 重要データがある場合は、別PCでドライブを読み取り救出可能

  • 組織PCの場合は、IT管理者に連絡


🚀 まとめ

状況リセット方法注意点
PINを忘れた「PINを忘れた」から再設定Microsoftアカウント認証が必要
Microsoftパスワードを忘れたWebでリセットセキュリティ情報が必須
ローカルアカウントのパスワードを忘れたセーフモードや別ユーザー上級者向け手順

Oracle「ORA-01830: 日付書式の変換で不要なデータが含まれています。」原因と対処法

🧩 エラーの概要

Oracleデータベースで日付型を扱う際に発生する代表的なエラーのひとつが、
「ORA-01830: 日付書式の変換で不要なデータが含まれています。」 です。

このエラーは、TO_DATE 関数や TO_TIMESTAMP 関数などで
日付文字列とフォーマットマスクが一致していない ときに発生します。


⚠️ 主な原因

原因詳細
フォーマットと実際の文字列が一致していない例:TO_DATE('2025/10/10 12:00:00','YYYY-MM-DD HH24:MI:SS') のように、区切り文字(/ と -)が異なる
余分な空白や文字が含まれている例:'2025-10-10 '(末尾にスペース)や '2025-10-10T12:00:00'("T" が不要)など
不正な日付データを変換しようとしている例:'2025-13-10'(13月など存在しない日付)
型変換の二重適用既にDATE型の列に対して再度 TO_DATE を適用しているケース
NLS設定の影響セッションのデフォルト日付形式が異なる場合、フォーマット不一致が起きやすい

💡 再現例と解説

この例では、/(スラッシュ)で区切られているのに
フォーマットマスクが -(ハイフン)になっているため不一致です。

✅ 正しい例:


🔍 対処法まとめ

対処法内容
フォーマットマスクを一致させる区切り文字・桁数・要素(年・月・日)を文字列と揃える
TRIM関数で空白を除去TO_DATE(TRIM(列名), 'YYYY-MM-DD') のように記述
型を確認する既にDATE型なら TO_CHAR などで変換すべき
NLS設定を確認SELECT * FROM NLS_SESSION_PARAMETERS WHERE PARAMETER LIKE 'NLS_DATE%'; で現状を確認
データクリーニング不正な日付を REGEXP_LIKE などで除外してから変換

🧠 補足:フォーマット指定の注意点

Oracleの日付フォーマット指定子には以下のようなものがあります:

指定子意味
YYYY西暦(4桁)
MM月(01〜12)
DD日(01〜31)
HH24時(00〜23)
MI
SS

たとえば YYYY-MM-DD HH24:MI:SS のように指定すれば
「2025-10-10 12:00:00」形式の文字列を正しく変換できます。


🧾 まとめ

ポイント内容
発生原因フォーマットとデータの不一致
よくあるパターン区切り文字違い・余分な空白・不正な日付
確認ポイントNLS設定、文字列の内容、列のデータ型
対処法フォーマット統一・データクリーニング・TRIM活用

✨ 例:実践的なクエリ

不正データを確認するSQL例:

変換時に安全に行う例:


🏁 まとめの一言

ORA-01830 は「フォーマットと実データのズレ」がほぼすべての原因。
SQLのフォーマット指定を正確に合わせるだけで、ほとんどのケースは解消します。

Oracle「ORA-01652: 一時セグメントを拡張できません」対処手順

Oracleデータベースで大規模なソート処理や集計を行うと、
次のようなエラーが発生することがあります。

ORA-01652: 一時セグメントを拡張できません

このエラーは、一時表領域(TEMP)の空き容量不足によって
SQL実行が中断されたことを意味します。
ここでは、その原因と具体的な対処手順をわかりやすく解説します。


⚠️ エラーの意味

「ORA-01652」は、OracleがSQL実行中に必要な一時領域を確保できなかったことを示すエラーです。
特に次のような処理で発生しやすくなります。

  • 大量データを扱う ORDER BY / GROUP BY / DISTINCT / JOIN

  • インデックス作成集計処理

  • TEMP表領域が固定サイズで、自動拡張が無効


🔍 主な原因

原因詳細
TEMP表領域の容量不足TEMPファイルのサイズが小さい
自動拡張が無効TEMPFILE の AUTOEXTEND が OFF
不要なセッションがTEMPを占有他ユーザーの大規模SQLがTEMPを使用中
SQLの非効率な実行計画インデックス未使用・結合順序の問題

🧭 対処手順

① TEMP表領域の使用状況を確認

現在の使用率を確認します。

または以下のSQLでも確認可能です。


② TEMPファイルを追加または拡張

TEMP領域が不足している場合、ファイルを追加します。

または新しいTEMPファイルを追加します。


③ 不要なセッションを確認・終了

一時領域を使い続けているセッションを確認します。

不要なセッションが確認できた場合は、管理者権限で終了します。


④ SQLをチューニングする

  • インデックスを利用する

  • 不要なDISTINCTやORDER BYを削除

  • 結合順序を見直す

  • 集計処理を段階的に分割

一時領域を減らすため、SQLの実行計画を確認します。


⑤ TEMP表領域を再作成(最終手段)

TEMPファイル破損や肥大化が疑われる場合は、
再作成を検討します。


🌟 まとめ

対処法内容
TEMP使用量確認V$TEMP_SPACE_HEADERやV$SORT_USAGEで確認
TEMP拡張ADD TEMPFILE または RESIZE
セッション整理不要なセッションをKILL
SQLチューニング実行計画の見直し
TEMP再作成最終手段として実施

📘 補足:再発防止策

  • 定期的に V$TEMP_SPACE_HEADER を監視

  • TEMP表領域は AUTOEXTEND ON を推奨

  • 大規模SQL実行前に EXPLAIN PLAN を確認

  • バッチ処理では 分割実行 を検討

【Windows 11】コマンドプロンプト起動時に全角入力になる問題を解決!ターミナル設定で半角英数に固定する方法

Windows 11で「cmd(コマンドプロンプト)」を開くと、なぜか最初から 全角入力(ひらがな)モード になってしまう──。
以前はIMEの詳細設定やレジストリ編集が必要でしたが、最新版(Windows 11 24H2以降)では、Windows ターミナルの設定から簡単に解決できます。

🖥️ 検証環境

  • OS:Windows 11 Pro 24H2

  • 構成:コマンドプロンプト(cmd.exe)を既定プロファイルとして使用

※上記環境では、「既定の IME 入力モード」をプロファイル単位で制御できます。


⚙️ 症状

  • コマンドプロンプトを開いてコマンド入力してみると「全角」入力モードになっていて、ん?と思うことがあります。

  • 半角/全角ボタンで半角入力モードには戻るが、コマンドプロンプト起動直後が全角入力モードという状態


🧭 原因

Windows 11では、入力モード(半角/全角)が アプリ単位で記憶される仕様になっています。
CMDが前回全角で閉じられた場合、次回も全角モードで開いてしまうことがあるのです。

しかし、新しいWindows ターミナル環境(v1.21以降) では、この初期状態をプロファイルごとに固定できるようになりました。


✅ 解決方法(最新版:Windows ターミナル設定でIMEモードを固定)

① Windows ターミナルを開く

  • スタートメニューで「cmd」または「Windows Terminal」を検索して起動します。

  • 上部タブで「コマンド プロンプト」を開きます。


② 設定を開く

  • 右上の「▼」アイコン → 「設定」をクリック
     またはショートカットキー Ctrl + ,(カンマ) でもOK。


③ 「スタートアップ」メニューを選択

左メニューから「スタートアップ」を開きます。


④ 「既定の IME 入力モード」を変更

  • 「既定の IME 入力モード」という項目があります。

  • ここをクリックして 「半角英数字(英語)」 を選択。

  • 最後に「保存」をクリック。


🧩 効果

これで、コマンドプロンプトを開いた瞬間に自動的に「A(半角英数)」モードでスタートします。
他のアプリ(メモ帳・ブラウザなど)のIMEには影響しません。


💬 旧環境(設定項目がない場合)

もしこの設定が表示されない場合は、
Windows ターミナルのバージョンが古いか、Windowsが22H2〜23H2世代の可能性があります。
その場合は以下のいずれかで対処可能です:

  • IMEの「アプリごとの入力モード設定」をオフ

  • PowerShellスクリプト/レジストリで EnablePerAppMode=0 を設定

(※旧環境向けの方法は別記事で解説予定)


🧊 まとめ

方法対応バージョン難易度備考
ターミナル設定Windows 11 24H2以降★☆☆(簡単)推奨
IME詳細設定~23H2★★☆旧UIで利用可
レジストリ変更全バージョン★★★管理者権限が必要

✨ 結論

🔹 今のWindows 11なら、コマンドプロンプトのIME初期状態はターミナルで設定するのが最も確実!
🔹 スクリプトもレジストリも不要。GUIで一発設定。

この新機能のおかげで、開発や管理作業のたびに「半角に戻す」手間はもう不要です。
環境が24H2以降なら、ぜひ設定しておきましょう。

Oracle「ORA-00054: リソースがビジー状態です」発生時の回避策

Oracleで以下のようなエラーが出ることがあります:

ORA-00054: リソースがビジー状態です。NOWAITを指定したためまたはタイムアウトが発生しました。

これは「対象のオブジェクトが別のセッションでロックされており、現在アクセスできない」ことを意味します。
主に DDL(CREATE、ALTER、DROPなど)を実行した際 に発生します。


🧠 主な発生原因

原因説明
セッションロック他のセッションがテーブルやインデックスを更新中でロック中
長時間トランザクションCOMMITされていないセッションが存在
DDLとDMLの競合DML実行中にALTER TABLEなどDDLを実行しようとした
自動統計・バックアップ中バックグラウンド処理が対象オブジェクトをロックしている

🧩 ロック状況の確認方法

1️⃣ ロックされているオブジェクトを特定


2️⃣ SQLを確認

🧰 回避策①:ロック解除(セッション切断)

他セッションが原因の場合は、該当セッションを強制終了します。


sidserial# は上記クエリで確認可能。

管理者権限(SYSDBA)が必要です。


🧰 回避策②:NOWAIT句またはWAIT句を利用

NOWAIT句(即時判定)


ロック中なら即エラーを返します。スクリプト制御時などに便利です。

WAIT句(待機)


最大10秒まで待機して、解除されれば処理を続行します。

🧰 回避策③:時間をおいて再実行

統計収集や自動ジョブが走っている時間帯(例:夜間バッチ中)に発生しやすいため、
時間をおいて再実行 するのも有効です。
特に自動メンテナンスが有効な環境では、深夜帯に競合することが多いです。


🧰 回避策④:DDLを業務外時間に実行

DDLはオブジェクトを完全ロックするため、
業務時間内にALTERやDROPを実行すると高確率で発生します。

定期メンテナンス時間帯 にスケジュール化しましょう。


⚠️ 注意点

  • KILL SESSION は強制終了のため、他処理への影響リスク がある

  • バッチ処理や自動統計のタイミングと重なると再発する

  • ロック発生元を特定し、原因セッションの対処を優先 することが重要


✅ まとめ(表)

対策内容注意点
セッション確認v$locked_object でロック特定管理者権限が必要
強制切断ALTER SYSTEM KILL SESSION他処理への影響注意
WAIT句利用ロック解除を待つタイムアウト指定が重要
実行タイミング調整バッチや統計処理の時間帯を避ける定期メンテナンス枠を活用

Oracle「ORA-28001: パスワードの有効期限が切れています」対応手順

Oracle Database を利用していると、ログイン時に
「ORA-28001: パスワードの有効期限が切れています」
というエラーに遭遇することがあります。

これは、データベースのセキュリティ機能として「パスワード有効期限」が設定されており、期限を過ぎたユーザがログインできなくなるために発生します。

この場合のエラーの原因と具体的な対応手順を解説します。


エラーの原因

Oracle データベースでは、ユーザごとに割り当てられた プロファイル(Profile) により、パスワード有効期限が管理されています。

典型的な原因は以下の通りです。

  • デフォルトの DEFAULT プロファイルで PASSWORD_LIFE_TIME が 180日 などに設定されている

  • 長期間パスワードを変更しておらず、期限切れとなった

  • 運用上、期限管理を無効化していなかった


対応手順

1. SQL*Plus などからログインを試みる

期限切れの場合、通常のユーザではログインできません。
DBA 権限を持つユーザ(例: sys as sysdba)でログインする必要があります。


2. パスワードをリセットする

対象ユーザのパスワードを変更します。


例:

これでユーザは再びログインできるようになります。


3. パスワード有効期限を確認する

どのプロファイルが割り当てられているかを確認します。

次に、そのプロファイルの設定を確認します。



4. パスワード期限を延長・無効化する(必要に応じて)

運用上パスワード期限を無期限にしたい場合は、以下のように設定します。


特定のユーザ専用プロファイルを作成し、そのみに適用する運用もおすすめです。

注意点

  • セキュリティポリシー上、期限を無期限にするのは推奨されない場合があります。

  • 運用規定に従い、定期的に強度の高いパスワードへ更新しましょう。

  • 本番環境では、DBA以外のアカウントで誤って変更しないよう注意が必要です。


まとめ

「ORA-28001: パスワードの有効期限が切れています」は、パスワードの期限切れによるエラーです。

  • DBA権限でログイン

  • パスワード変更

  • プロファイル確認と調整

この流れで対応すれば、迅速に復旧できます。運用に合わせてパスワード有効期限の設定を見直すことも重要です。