Oracle8i 第一日曜日を取得

alter session set nls_date_format = ‘yyyy/mm/dd’;
alter session set NLS_DATE_LANGUAGE=’japanese’;
select NEXT_DAY(round(DATE ’2010-1-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-2-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-3-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-4-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-5-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-6-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-7-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-8-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-9-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-10-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-11-01′-1,’dd’),’日曜’) first_sun from dual;
select NEXT_DAY(round(DATE ’2010-12-01′-1,’dd’),’日曜’) first_sun from dual;

▼ 上記の実行結果

FIRST_SUN
———-
2010/01/03
2010/02/07
2010/03/07
2010/04/04
2010/05/02
2010/06/06
2010/07/04
2010/08/01
2010/09/05
2010/10/03
2010/11/07
2010/12/05

Oracle8i トリガーの確認

set linesize 200
set pagesize 0
col OBJECT_NAME FORMAT A30

select OBJECT_TYPE,OBJECT_NAME,STATUS,OWNER
from dba_objects
where OWNER = ‘TEST’
and OBJECT_TYPE in (‘TRIGGER’);

select
‘alter ‘ ||
decode(OBJECT_TYPE, ‘PACKAGE BODY’, ‘PACKAGE’, OBJECT_TYPE) ||
‘ ‘ || OBJECT_NAME || ‘ compile;’
from dba_objects
where OWNER = ‘TEST’
and STATUS = ‘INVALID’
/

Oracle8i redo変更

select group#,thread#,sequence#,bytes members,status from v$log;

alter database TEST drop logfile group 1;
alter database TEST drop logfile group 2;
alter database TEST drop logfile group 3;
alter database TEST drop logfile group 4;

select group#,thread#,sequence#,bytes members,status from v$log;

alter database TEST add logfile group 1 ‘/test/TEST/TEST_REDO01.dbf’ size 500M reuse ;
alter database TEST add logfile group 2 ‘/test/TEST/TEST_REDO02.dbf’ size 500M reuse ;
alter database TEST add logfile group 3 ‘/test/TEST/TEST_REDO03.dbf’ size 500M reuse ;
alter database TEST add logfile group 4 ‘/test/TEST/TEST_REDO04.dbf’ size 500M reuse ;

alter system switch logfile;

EXCEL VBA ソースコードメモ

これは本当にメモ。

暇なときに簡単なゲームとか作ってたらなんだかEXCEL VBAに興味が。
こういうのがみんなやりたいわけだよ!
遊びたいのだよ技術で!
っと俺は思う。

Sub excect()
Set beginRow = Range(“A18″)
Set endRow = Range(“B18″)

If beginRow = endRow Then
Else
‘MsgBox beginRow & endRow
endRow = endRow + 1
MsgBox “A” & endRow
Rows(endRow).Insert
End If

End Sub

Sub ボタン1_Click()
Call delete
End Sub
Sub ボタン2_Click()
Call line
End Sub
Sub ボタン3_Click()
Call excect
End Sub

Sub macro1()

‘ Macro1 Macro

‘ ShortCutKey Ctrl + q
ActiveCell.Offset(0, 4).Select
ActiveSheet.Paste

End Sub

Sub Macro2()

‘ Macro2 Macro

‘ ShortCutKey Ctrl + w

ActiveCell.Offset(0, 2).Select
Selection.EntireColumn.Insert

End Sub

Sub G_ボタン1_Click()

Dim player As Range
Dim enemy As Range

Set player = Range(“E15″)
Set enemy = Range(“F15″)

‘player = Int(3 * Rnd + 1)
enemy = Int(11 * Rnd + 1)

‘TextBox1 = “ここに入力してください。”

If enemy = 1 And player = 2 Then Range(“e18″).Value = “あなたの負けです。”
‘敵が「グー」自分が「チョキ」を出しているならば「あなたの負けです。」と表示させます。

If enemy = 1 And player = 3 Then Range(“e18″).Value = “あなたの勝ちです。”
‘敵が「グー」自分が「パー」を出しているならば「あなたの勝ちです。」と表示させます。

If enemy = 2 And player = 1 Then Range(“e18″).Value = “あなたの勝ちです。”
‘敵が「チョキ」自分が「グー」を出しているならば「あなたの勝ちです。」と表示させます。

If enemy = 2 And player = 3 Then Range(“e18″).Value = “あなたの負けです。”
‘敵が「チョチ」自分が「パー」を出しているならば「あなたの負けです。」と表示させます。

If enemy = 3 And player = 1 Then Range(“e18″).Value = “あなたの負けです。”
‘敵が「パー」自分が「グー」を出しているならば「あなたの負けです。」と表示させます。

If enemy = 3 And player = 2 Then Range(“e18″).Value = “あなたの勝ちです。”

‘If player = enemy Then
‘ Range(“e18″).Value = “あいこ”
‘ else if player <> enemy then
‘Range(“e18″).Value = “ABC”

End Sub
Sub G_ボタン4_Click()
Dim player As Range
Dim enemy As Range
Dim playerPoint As Range
Dim enemyPoint As Range

Set player = Range(“a43″)
Set enemy = Range(“b43″)

Set playerPoint = Range(“a49″)
Set enemyPoint = Range(“b49″)

player = player + Int(11 * Rnd + 1)
enemy = enemy + Int(11 * Rnd + 1)

If enemy = 21 And player = 21 Then
Range(“e45″).Value = “引き分けです。player=” & player & ” enemy=” & enemy
End If

If enemy = 21 And player <= 20 Then Range("e45").Value = "あなたの負けです。player=" & player & " enemy=" & enemy enemyPoint = enemyPoint + 1 End If If enemy >= 20 And player = 21 Then
Range(“e45″).Value = “あなたの勝ちです。player=” & player & ” enemy=” & enemy
playerPoint = playerPoint + 1
End If

If enemy <= 20 And player <= 20 Then Range("e45").Value = "カードを引いてください。" End If 'If enemy >= 22 And player <= 22 Then 'Range("e45").Value = "enemyのバーストです。あなたの勝ちです。player=" & player & " enemy=" & enemy ' player = 0 ' enemy = 0 ' playerPoint = playerPoint + 1 'End If If enemy <= 22 And player >= 22 Then
Range(“e45″).Value = “playerのバーストです。あなたの負けです。player=” & player & ” enemy=” & enemy
player = 0
enemy = 0
enemyPoint = enemyPoint + 1
End If

If enemy >= 22 And player >= 22 Then
Range(“e45″).Value = “お互いバーストです。引き分けです。player=” & player & ” enemy=” & enemy
player = 0
enemy = 0
End If

End Sub
Sub G_ボタン5_Click()

Dim player As Range
Dim enemy As Range
Dim playerPoint As Range
Dim enemyPoint As Range

Set player = Range(“a43″)
Set enemy = Range(“b43″)

Set playerPoint = Range(“a49″)
Set enemyPoint = Range(“b49″)

If player = 0 Then
Range(“e45″).Value = “カードを引いてください。”
End If

If enemy = player Then
Range(“e45″).Value = “引き分けです。player=” & player & ” enemy=” & enemy
player = 0
enemy = 0
End If

If enemy > player Then
Range(“e45″).Value = “あなたの負けです。player=” & player & ” enemy=” & enemy
enemyPoint = enemyPoint + 1
player = 0
enemy = 0
End If

If enemy < player Then Range(“e45″).Value = “あなたの勝ちです。player=” & player & ” enemy=” & enemy playerPoint = playerPoint + 1 player = 0 enemy = 0 End If End Sub

Excel VBA セルの削除とかをマクロでやると作業効率UP!

ポイントは、マクロをショートカットキーに割り当てます!
これをすることによって、簡単なマクロを色々作ってプチ作業効率化ができます!
っといってもEXCEL VBAはほぼ素人な私ですが・・・・。

というか素人でも割りかし簡単にできちゃいます!

これとか、ちょっとセルを削除したい時に使えます。
Offsetの部分を変えて、deleteの数とか変えるだけで好きなようにできます。
こういうのがEXCEL VBAの醍醐味だと俺は思う。

Sub delete()

‘ Macro2 Macro

‘ ShortCutKey Ctrl + p

‘ActiveCell.Offset(1, 0).Select
‘Selection.EntireColumn.EntireRow.delete

ActiveCell.Offset(1, 0).Select
Selection.EntireRow.delete
Selection.EntireRow.delete
Selection.EntireRow.delete
ActiveCell.Offset(2, 0).Select

End Sub

Sub oneRowDelete()
ActiveCell.Offset(1, 0).Select
Selection.EntireRow.delete
End Sub

Sub Delete_two()
ActiveCell.Offset(1, 0).Select
Selection.EntireRow.delete
Selection.EntireRow.delete
Selection.EntireRow.delete
Selection.EntireRow.delete
ActiveCell.Offset(2, 0).Select
End Sub