SQL:WHERE句内で「(+)」を指定する意味

SQLを見てるとたまにWHERE句内で「(+)」と記載されているのを見かけることがあります。

この「(+)」はOracle独自で記載が可能となる外部結合演算子といって、「g.GOODS_CODE = gt.GOODS_CODE(+)」のように指定するとLEFT OUTER JOINと同じ結果を取得することが出来ます。

サンプルテーブル

  • 「GOODS」テーブル
  • 「GOODS_TYPE」テーブル

外部結合演算子を利用したクエリー(SQL)例

通常の左外部結合でのクエリー(SQL)例

実行結果

外部結合演算子、左外部結合どちらも同じ結果となります。

 

「.com」ドメインは今後も毎年値上がりする可能性大!

本日、レンタルサーバー会社からドメイン料金改定(要はドメイン料金値上がり)のお知らせが届いてました。。

こんなところにも値上がりの波が!?

とメールを見てみるといきなり3割以上も値上がりしてます。。

ドメイン料金なので1年で2614円と考えれば大した金額でもないのですが、突然何故?と思っているとメール文中に「上位組織から提示されるドメイン料金の上昇」と記載されています。

上位組織?と思って調べてみたら

「.com」ドメインのレジストリ管理企業であるVerisignha社(ベリサイン社)は
2020年1月3日にICANNにより公開された「.comレジストリ契約の修正に関する発表」により、
2020年から2029年までの10年間、年間7%・最大70%値上げを行う権利を認められてるとの事。
上記に基づき、Verisign社は2021年9月1日から約7%の卸価格値上げを決定しています。

というのが背景となってました。

メール見てそのまま1年更新でいいかあ程度に考えてましたが、今後も毎年値上げが実施される可能性大というのも考慮すると今のうちに複数年契約した方が良いと判断して最大の5年契約に変更しました。

今後も「.com」ドメインを長期使用予定の方は契約年数を見直したほうがお得かも

Oracle:ユーザー作成時に「ORA-65096」エラーが出た場合の原因と対応方法

Oracleのインストール後にSQL*Plusなどでユーザー作成しようとした際、「ORA-65096」エラーが発生した場合の原因と対応方法についてメモしておきます。

「ORA-65096:共通ユーザーまたはロール名が無効です」の原因

  • ルートコンテナにローカルユーザーを作成しようとした場合に発生するエラーとなります。
    ルートコンテナには共有ユーザー(common user) と呼ばれる特殊なユーザーしか作成することはできません。
    Oracle 11gまでと違いOracle 12c以降からは一つのインスタンスには一つのコンテナ・データベース(CDB)と、プラガブル・データベース(PDB)と呼ばれる子DBが存在しています。sysなどのユーザーでログイン直後はコンテナ・データベース(CDB)に接続されている状態となっているため、そのままローカルユーザーを作成しようとしてもエラーが発生してしまうということになります。

「ORA-65096:共通ユーザーまたはロール名が無効です」の対処方法

原因が分かってしまえば対応はシンプルです。接続先がコンテナ・データベース(CDB)であるのがまずいのであればプラガブル・データベース(PDB)に変更してしまえばいいだけです。

  1. まずは「show con_name;」で現在接続されているデータベースを確認します。
  2. 次に「select name, open_mode from v$pdbs;」でPDBの名前と現在のOPEN_MODEを確認します。
  3. PDBの名前が「ORCLPDB」というのがわかったのでデータベースの接続先を「ORCLPDB」へ変更します。
  4. もう一度「show con_name;」を実行して接続先が変更されていることを確認します。
  5. 接続先がPDBへ変更されたのでもう一度ユーザー作成を実行すると正常に実行されます。

 

エクスプローラー操作が格段に楽になるファイルマネージャーアプリ「One Commander」

「One Commander」はファイルマネージャーアプリでWindows標準のエクスプローラーを利用している方には一度は試してもらいたいソフトの代表格です。使用したら恐らく標準のエクスプローラーには戻れませんw

そういえば標準のエクスプローラーだとWindows11でようやくタブ化されたとか。。

「One Commander」のダウンロード

覚え書き.comから「One Commander 3.5.11」をダウンロード

  • バージョン:3.5.11.0
  • ファイルサイズ:43.5M

「One Commander」の主な機能・特徴

  • デュアルパネル、サイドバイサイドのファイルブラウジング
  • エクスプローラーのタブ化や改装表示が可能
  • ファイル作成日の色分け表示
  • 動画、画像、PDF、ソースコードファイルなどのプレビュー表示
  • お気に入り(BookMark)のグループ化
  • File Automatorというツールでファイル名の一括変換や画像ファイルのjpegなどへの一括変換なども可能

ライセンス

  • Shareware ※非商用利用は無料

サポート

  • Windows10、Windows11

 

Twitter:API Key、API Key Secret、Access Token、Access Token Secretの確認方法

Twitterで開発者アカウント取得後、「API Key」、「API Key Secret」、「Access Token」、「Access Token Secret」を確認する手順をメモしておきます。

※事前にTwitterの開発者アカウント取得済を前提としてます。

「API Key」、「API Key Secret」の確認方法

  1. TwitterのDeveloper Pottalページへアクセスします。
    ⇒TwitterのDeveloper Portalページへ
  2. DEVELOPMENT APPの鍵アイコンを選択します。
  3. API Key and Secretの「Regenerate」を選択します。
  4. 確認画面で「Yes,regenerate」を選択します。
  5. API Key と API Key Secretが表示されるのでCopyボタンを選択すればコピー出来ます。

「Access Token」、「Access Token Secret」の確認方法

※「API Key」、「API Key Secret」の確認方法の1~2までは同じ手順です。

  1. Access Token and Secretの「Regenerate」を選択します。
  2. 確認画面で「Yes,regenerate」を選択します。
  3. Access Token と Access Token Secretが表示されるのでCopyボタンを選択すればコピー出来ます。

WordPressで記事の更新時に「更新が失敗しました。返答が正しいJSONレスポンスではありません。」と表示されたり新規投稿画面を開こうとしても「Security check failed」と表示された原因

本日WordPressで作業していたら以下のような事象が発生しました。

  • WordPressで記事を更新しようとしても以下のように「更新が失敗しました。返答が正しいJSONレスポンスではありません。」と表示されて更新出来ない
  • 新規で投稿や固定ページを追加しようとしても「Security check failed」と表示されて新規投稿用の画面が表示されない

先日まで投稿できてたのに何故!?

と思いエラーメッセージでググっても「クラシックエディタに変更してみる」とか「パーマリンク設定を基本にする」などは見つかりましたが今ひとつ根本的な解決手段じゃないなあと本日行った作業を思い出してみるとそういばプラグインいくつか更新したな。。と思い出し本日更新したプラグインを一つずつ無効化して確かめてたら。。

プラグイン「WP to Twitter」の更新が原因でした!!

これを無効化したら全て正常に動作したので私の場合は「プラグインの更新で不具合があった」というのが根本原因でした。。

やっぱりプラグイン更新時は動作確認必須だなあと再認識(^_^;)

WP to Twitterのページを見るとバージョン「3.6.0」に更新すると発生します。

サポートフォーラムを見てもまだこの件については何も記載されてないようなのでもう少し対応待つ必要ありそうです。

Wp to Twitterのプラグインページへ

 

今回は更新したプラグインで不具合があったのが原因でしたが、調べていると他の原因でも「更新が失敗しました。返答が正しいJSONレスポンスではありません。」のメッセージが表示されることがあるようです。まずは正常に更新出来ていた時期~エラーが発生した時期までに更新したことを思い出して一つずつ原因を潰すのが一番近道かなあと思います。あと定期的なバックアップも大事!

他に考えられる原因や対処方法

  • レンタルサーバー側でなんらかのセキュリティなどの機能が追加されたのが影響した
  • 「.htaccees」の編集で記載ミスがあった。もしくは自動で中身がクリアされてしまっていた。
  • ブラウザのキャッシュをクリアしたら直った
  • サーバーのWAFをOFFにしたら直った

 

SQL:TRIM関数を使って任意の文字や文字列を削除する方法

trimは通常、文字列の前後の半角スペースを削除して取得する場合に使用する場合が多いと思いますが、引数へLEADING、TRAILING、BOTHを指定することで任意の文字や文字列を削除して取得することが出来ます。

サンプルテーブル

  • 「goods」テーブル

TRIMに引数「LEADING」を指定した場合

TRIMに引数「LEADING」を指定することで文字列の先頭にある任意の文字や文字列を削除することが出来ます。

  • クエリー(SQL)例
  • 実行結果

TRIMに引数「TRAILING」を指定した場合

TRIMに引数「TRAILING」を指定することで文字列の末尾にある任意の文字や文字列を削除することが出来ます。

  • クエリー(SQL)例
  • 実行結果

TRIMに引数「BOTH」を指定した場合

TRIMに引数「BOTH」を指定することで文字列の先頭と末尾にある任意の文字や文字列を削除することが出来ます。

  • クエリー(SQL)例
  • 実行結果

Excel:xxヶ月後の月末日付を表示する方法

Excelでxxヶ月の月末日付を取得するにはEOMONTH関数を使用することで可能となります。

xxヶ月後の月末日付を取得する方法

EOMONTH関数は「EOMONTH(開始日, 月)」の書式で指定します。

以下の例ではB1セル「本日の日付」の5ヶ月後の月末日をB2セルへ表示しています。

B2セルは日付型にして書式には「=EOMONTH(B1,5)」を入力しています。

B列の書式

SQL:大文字 ⇒ 小文字、小文字 ⇒ 大文字へ変換する方法

SQLで大文字⇒小文字に変換する場合はLCASE関数 or LOWER関数、小文字⇒大文字へ変換するにはUCASE関数 or UPPER関数を使用します。DBMS毎で使用出来る関数が異なるので整理しておきます。

サンプルではPostgreSQLでの使用例となります。

 

関数\DBMSMySQLPostgreSQLSQL ServerOracle
UCASE
※小文字 ⇒ 大文字
UPPER
※小文字 ⇒ 大文字
LCASE
※大文字 ⇒ 小文字
LOWER
※大文字 ⇒ 小文字
 

サンプルテーブル

  • 「goods」テーブル

UPPER関数(小文字 ⇒ 大文字へ変換)の使用例

  • クエリー(SQL)例
  • 実行結果

LOWER関数(大文字 ⇒ 小文字へ変換)の使用例

  • クエリー(SQL)例
  • 実行結果

自分のホームページ(ブログ)へTwitterのフォーローボタンを設置する方法

Twitterのフォローボタンを設置する方法は、Twitter Publishページで自分のツイートのタイムラインやフォローボタンを自動生成してくれる機能があるのでそちらから簡単に作成可能となります。

TwitterのPublishページ

Twitterのフォローボタンの作成手順

  1. TwitterのPublishページを表示して自分のTwitterのURLを入力してEnter
  2. 「Twitter Buttons」を選択します。
  3. 「Follow Button」を選択します。
  4. カスタマイズしたい場合は「set customization options」のリンクをクリックしてカスタマイズ画面を表示させることでボタンサイズやアカウント名の表示有無などを設定できます。設定が完了したら「Update」ボタンを選択します。
  5. あとは表示されたソースコードを「Copy Code」ボタンを選択してコピーして自分のホームページなどに貼り付ければ設置は完了です。

設定例

  • ソースコードを貼り付けると以下のようなフォローボタンが表示されます。
    • デフォルト状態:
    • ボタンを大きくした場合:
    • ユーザー名を非表示した場合:
    • ユーザー名を非表示でボタンを大きくした場合:
    • 公式のカスタマイズではフォロワー数表示は制御できないのですが、ソースコードの「data-show-count=”false”」を「data-show-count=”true”」に変更することでフォロワー数を吹き出し表示させることも出来ます。
      フォロワー数を表示させた場合: