スキップしてメイン コンテンツに移動

ORACLE Useful SQL

String

  • SUBSTR(Substring, left, right)
/* if you want using left */
select SUBSTR('mystr', 1, 3) from dual;
-- result : mys

/* if you want using right */
select SUBSTR('mystr', -3) from dual;
-- result : str

/* if you want using substring */
select SUBSTR('mystr', 3, 2) from dual;
-- result : st
  • replace(sourcetext, findstr, replacestr)
select REPLACE('mystr', 's', 'o') from dual;
-- result : myotr
  • Like including _ character
select * from all_tables where table_name like 'TBL\_%';

Math

  • mod
select mod(10, 7) from dual;
-- result : 3

Others

  • Find String from Procedure source
SELECT *
 FROM ALL_SOURCE
 WHERE TEXT LIKE '%EVENTSTRING%'
 ORDER BY TYPE, NAME, LINE;
SQL> select to_char(SYSDATE, 'EEDL', 'NLS_CALENDAR=''JAPANESE IMPERIAL''')
  2  from dual;
 
TO_CHAR(DATE'1900-01-01','EEDL','NLS_CALEN
------------------------------------------
明治33年1月1日 月曜日
  • DateDiff
select dtA - dtB as sDatediff from TableA;
SELECT  TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'YYYYMM')  AS m1
  , TO_CHAR (ADD_MONTHS (SYSDATE, -2), 'YYYYMM')  AS m2
  , TO_CHAR (ADD_MONTHS (SYSDATE, -3), 'YYYYMM')  AS m3
FROM    dual;
  • Create DDL script
-- if use long when ddl script be truncated
set long 100000
select dbms_metadata.get_ddl('TABLE','TableName','Owner') from dual;
select dbms_metadata.get_ddl('Procedure','ProcedureName','Owner') from dual;
  • Find locked SQL
select * from v$lock where block = 1;

Table/View/Procedure/Function structure

Ranking

SELECT stu_no,activity,score,
 RANK() OVER (ORDER BY score) score_rank
FROM student
ORDER BY score_rank;
CREATE OR REPLACE FUNCTION STRTOKEN(
	P_STRING VARCHAR2, P_DELIMIT VARCHAR2,
	P_POS POSITIVEN := 1, P_NTH POSITIVEN := 1,
	P_EOD VARCHAR2 := NULL)
RETURN VARCHAR2
IS
	vStartPos	PLS_INTEGER;
	vEndPos		PLS_INTEGER;
BEGIN
	IF (P_POS = 1) THEN
		vStartPos := 1;
	ELSE
		vStartPos := INSTR(P_STRING, P_DELIMIT, 1, P_POS - 1);
		IF (vStartPos = 0) THEN
			RETURN P_EOD;
		END IF;
		vStartPos := vStartPos + 1;
	END IF;
	vEndPos := INSTR(P_STRING, P_DELIMIT, vStartPos, P_NTH);
	IF (vEndPos = 0) THEN
		RETURN SUBSTR(P_STRING, vStartPos);
	END IF;
	RETURN SUBSTR(P_STRING, vStartPos, vEndPos - vStartPos);
END;
/

Functions

Triggers

  • Enable/disable/compile
alter trigger <triggername> disable;
alter trigger <triggername> compile;
alter trigger <triggername> enable;

DB Link

AWR / ASH

Index

for edit

コメント

このブログの人気の投稿

コピペができないときチェックすべきこと! :: よく迷うUiPathのコツ

UiPath( https://uipath.com )はMicrosoft社のWWFを改良した製品なのでVisual Studioより初心者向けに使いやすくなっている。 しかし、初心者がそのまま使うにはかなりのハドルがある。 理由は基本開発者向けの開発ツールを無理やり便利に作ってみたとしても開発の概念と考え方がないと結構躓くことが多い。 そのなかで私もよく迷ったりしていることの一つを整理しとく。 基本Activityはすぐコピぺができるので多数のUiPath Studioを開いて開発してたりする。 ここでコピペをしても反応ないときがよくある。 この場合はこれをチェックすること! 1.Sequenceがなく一つのActivityしかないところにはペーストできないのが多い。 例えば、ifの処理ボックスにはSequenceが最初はない。 そのボックスに一つのActivityはペーストできるのに2個目からはなぜか反応ない。 それで分からないまま新しいActivityを追加してたりしたが、 あそこにSequenceを入れたら解決ができるのだ! 2.正常にペーストできるはずのところに反応ない。 この場合はPackageが合わなくペーストが効かないケースが多い。 DESIGN>Manage Packagesをクリックしてコピー元のパッケージにインストールされているのにコピー先にインストールされてないパッケージを探す! パッケージを一々見るのが難しい!と思ったら メモ帳からファイルがあるフォルダにあるproject.jsonファイルを開いてみる! あそこにJSONの形式でインストールされたパッケージが見えるので比較しやすくなる! ちなみにコピペをすると変数の宣言が大変だと思うが、 そこでもコツがあるのだ! 変数の宣言はなるべく細かくしてSequence単位で管理できるようにする。 全てに影響がある変数はしょうがないから一番広く宣言するけど。 初心者向けの説明だと、 Variablesというところをクリックして変数を開いたらScopeという範囲が見える! 大体Sequenceボックスの名前を変えてないのでSequenceがすらりと表示されてるはずが、Sequenceボックスの名前を付けてたら見やすくなる。 あ

面倒くさいORACLEの文字化け状況

ORACLEはそもそもUTF-8をサポートしてほかの言語はサポートはしているって書いてますが親切ではないようです。 現在サーバー側は昔からUS7ASCIIに設定して日本語を入れてしまい、データは7ビットASCIIモードで読み取りながら日本語のコートがOS側とクライアント側で変換しない必要があります。 クライアント側で文字化けの解決にはNLS_LANGの設定が効くクライアントが必要ですが、一部の有料クライアントにはサポートするようです。 接続構造は参考に https://www.oracle.com/technetwork/jp/content/charcterset-250314-ja.pdf の19スライドのように クライアントからNLS_LANGをUS7ASCIIに設定しても その設定した言語にもらったUTF-8のデータをクライアントが変換すると NLS_LANGを設定しても意味がないようです。 ORACLE SQL Developerがこの様です。 ODBCと直接接続は必ずUTF-8に変換してしまうのでUS7ASCIIになっているDBからはクライアントをいくら変換しても文字化けのままです。 必ずOCI接続を通じてクライアント側から読み取らないとUS7ASCIIは勝手に変換されますね。 この全ての条件が満たした無料クライアントはA5mk2の2.9.1バージョンだけですね。 A5MK2 ver.2.9.1 : https://a5m2.mmatsubara.com/download/a5m2_2.9.1_x64.zip 2.9.1 バージョンでサーバーを設定する場合Uicode変換を強制に無視するオプションがあります。 多分このバージョンの時点ではUTF-8をメインにして設計したDBが少なかったから文字化け対応のためできたオプションでしょう。 しかし、A5mk2の新しいバージョンにもまた結果の変換をしないオプションがなくなって文字化けしてしまいます。開発者はもうUTF-8ではないDBはないと思ってるでしょう。まだまだ残ってますよ~。 クライアント側からの変換などに参考になればと思います! まだ直接お仕事になさってますか? もう遅いです!ソフトウェアロボットにお仕事を任せてどの位自分の作業分量が減ってるかをご確認ください! https://talklowy-jp.b

UiPathではWeb.HttpUtilityが使えない!

UrlEncodeを使いたい! HttpRequest Activityを使ったら文字のせいで途中で切れてしまうケースが発生! .NetにもともとあったUrlEncode関数を使えばいいかなと思って調べたら、 System.Web.HttpUtilityを使えってUiPathコミュニティから言われたけど 実際に入れてみると HttpUtilityはWebに属してないとか言われました。 それで調べたら var webencode = System.Net.WebUtility.UrlEncode(test); var httpencode = System.Web.HttpUtility.UrlEncode(test); このように2種類があるって、 それでSystem.Net.WebUtility.UrlEncodeを使ってみると成功! ではでは~ Orchestratorなしで多数のUiPathを楽しむ! Full RPA Manager. https://giipasp.azurewebsites.net/