今なら、もっと別の小銭稼ぎ方法があるかも。あと、今じゃもう放送できないのかな。
妻とみたが、妻にもまあまあ好評。
昔見た時は、たしか親と見ていて気まずかった記憶あり。。。
木村家の人々
Oracle Application Express Notes | Apps development Notes | Google Cloud Platform | Python | apps test | Cool Beans | English | Books
#update と 必要なパッケージ入れる | |
sudo yum update -y | |
sudo yum install -y gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel bzip2 sqlite curl | |
#ubuntuの場合 | |
#初期UPDATE | |
#sudo apt-get update | |
#sudo apt-get upgrade | |
#必要なライブラリインストール | |
#sudo apt-get install -y git gcc make openssl build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils libgtk2.0-dev pkg-config | |
#pyenvのインストール | |
git clone git://github.com/yyuu/pyenv.git ~/.pyenv | |
#環境設定 | |
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc | |
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc | |
echo 'eval "$(pyenv init -)"' >> ~/.bashrc | |
exec $SHELL -l | |
#pyenv-virtualenvのインストール+環境設定 | |
git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv | |
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc | |
exec $SHELL -l |
sudo yum update -y | |
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 | |
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo | |
sudo yum makecache fast | |
sudo yum list docker-ce.x86_64 --showduplicates |sort -r | |
sudo yum -y --enablerepo=rhui-REGION-rhel-server-extras install container-selinux | |
sudo yum -y install docker-ce | |
# Start docker | |
sudo systemctl enable docker.service | |
sudo systemctl start docker.service |
# -*- coding: utf-8 -*- | |
import csv | |
#list作成する場合 | |
with open('menu.csv', 'r') as f: | |
csvdata = csv.reader(f) | |
data = [ x for x in csvdata ] | |
#集合にセットする場合 | |
with open('menu.csv', 'r') as f: | |
csvdata = csv.reader(f) | |
dataset = set(dict([ x for x in csvdata ])) | |
#listを辞書型に変更 | |
datadic = dict(data) | |
#checking | |
print('List') | |
print(data) | |
print(len(data)) | |
print('Dic') | |
print(datadic) | |
print(len(datadic)) | |
print('Set') | |
print(dataset) | |
print(len(dataset)) |
# -*- coding: utf-8 -*- | |
import unicodedata | |
inputtext = 'UDON001' # 半角全角混じりでもOK | |
menu = 'menu.csv' | |
# ひらがな・カタカナ・漢字があるかどうかチェック。 あったらTRUE | |
def isJPN(string): | |
for ch in string: | |
name = unicodedata.name(ch) | |
if "CJK UNIFIED" in name \ | |
or "HIRAGANA" in name \ | |
or "KATAKANA" in name: | |
return True | |
return False | |
def main(): | |
if isJPN(inputtext.decode('utf-8')) is False: # 英数字のみなら | |
text = unicodedata.normalize('NFKC', inputtext.decode('utf-8')) # 全角をすべて半角に変更 | |
with open(menu, 'r') as readf: # Menuファイルを開く | |
for line in readf: # 1行づつ | |
if line.find((text.upper() + ',').encode('utf-8')) == 0: # 先頭からテキストが一致して、その直後に','があったら | |
itemname = line[:-1] # その行を取得 | |
print(itemname) | |
if __name__ == '__main__': | |
main() |
DECLARE @tmp TABLE (datechar VARCHAR(200), | |
timechar VARCHAR(200)) | |
--sample dataset | |
--Insert | |
INSERT INTO @tmp (datechar,timechar) | |
VALUES ('Wednesday, February 15, 2017','1:25:22 PM') | |
, ('Monday, May 15, 2017','12:35:16 AM') | |
--select | |
select datechar | |
, timechar | |
--CONVERT from Char to Datetime.... | |
, CONVERT(DATETIME, | |
-- 無理矢理書式を整える | |
-- Year 4 digit | |
Right(datechar,4) | |
-- Month 2 digit | |
+ (CASE substring(datechar, | |
CHARINDEX(' ',datechar)+1,--一つ目の空白の後ろから | |
CHARINDEX(' ',datechar,CHARINDEX(' ',datechar)+1)-CHARINDEX(' ',datechar))--次の空白の前 | |
WHEN 'January' THEN '01' | |
WHEN 'February' THEN '02' | |
WHEN 'March' THEN '03' | |
WHEN 'April' THEN '04' | |
WHEN 'May' THEN '05' | |
WHEN 'June' THEN '06' | |
WHEN 'July' THEN '07' | |
WHEN 'August' THEN '08' | |
WHEN 'September' THEN '09' | |
WHEN 'October' THEN '10' | |
WHEN 'November' THEN '11' | |
WHEN 'December' THEn '12' | |
ELSE 'error' END) | |
-- Day 2 digit | |
+ substring(datechar,CHARINDEX(' ',datechar,CHARINDEX(' ',datechar)+1)+1,2) | |
+ ' ' | |
-- time | |
+ timechar) as datetime_type | |
from @tmp | |
GO |
-- Input 用 SAMPLEファイル | |
$ cat birth.dat | |
John Osaka 12/05/2000 M | |
Mark Tokyo 12/10/2001 M | |
Emily Akita 01/24/1998 W | |
Sam Osaka 10/01/1988 M | |
Toshi Osaka 11/01/2000 M | |
--$1 = 1列目(名前)$2 = 2列目(出身地)$3 = 3列目(誕生日) $4 = 4列目(男女) | |
-- 名前だけを表示する | |
$ awk '{print $1}' birth.dat | |
John | |
Mark | |
Emily | |
Sam | |
Toshi | |
-- if 条件付き分岐 大阪出身だったら名前だけ、それ以外は出身地を名前を表示 | |
$ awk '{if($2=="Osaka")print $1; else print $1,$2;}' birth.dat | |
John | |
Mark Tokyo | |
Emily Akita | |
Sam | |
Toshi | |
-- ファイルの分割 $4(男女)の項目をファイル名とし、出力ファイルを分割 | |
-- if をつかってファイル名を指定しても当然可能 | |
$ awk '{print $1,$3,$2 > $4".dat"}' birth.dat | |
$ cat W.dat | |
Emily 01/24/1998 Akita | |
$ cat M.dat | |
John 12/05/2000 Osaka | |
Mark 12/10/2001 Tokyo | |
Sam 10/01/1988 Osaka | |
Toshi 11/01/2000 Osaka |
DECLARE @xml as XML | |
--temp Manual set | |
SET @xml = CAST('<Logs> | |
<LogDateEntry date="01/01/2017"> | |
<Details time="05:16:26" Type="GET" subject="TEST1" details="This is test" value="50" target="SERVER1" /> | |
<Details time="05:16:35" Type="PUT" subject="TESTSE" details="aseasdfasdfa" value="125" target="SERVER3" /> | |
<Details time="05:25:24" Type="PUT" subject="ddddd" details="asdfasdfasdfsafdsafdasdfasfdsadfasdf" value="1524" target="SERVER1" /> | |
<Details time="05:45:23" Type="GET" subject="asdfasdfasdfasdfasfdsafd" details="asdfasfdsafdasfdasdfasdfasdfasdfasdfasdfsa" value="12" target="SERVER1" /> | |
</LogDateEntry> | |
</Logs>' as XML) | |
--Insert | |
--insert into TEST_LOG(DATE,TIME,alertType,subject,details,value,target,creation_date) | |
--select | |
select CONVERT(VARCHAR(50),TLOG.c.query('data(..//@date)')) as DATE | |
, CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@time)')) as TIME | |
, CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@Type)')) as AT | |
, CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@subject)')) as SUB | |
, CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@details)')) as details | |
, CONVERT(NUMERIC(18,3),CONVERT(VARCHAR(1000),TLOG.c.query('data(.//@value)'))) as value | |
, CONVERT(VARCHAR(100),TLOG.c.query('data(.//@target)')) as target | |
, getdate() | |
from @xml.nodes('/Logs/LogDateEntry/Details') as TLOG(c) | |
GO |
CREATE TABLE [dbo].[Logxml]( | |
[ID] [int] IDENTITY(1,1) NOT NULL, | |
[logxml] [xml] NULL, | |
[filename] [varchar](500) NULL, | |
[creation_date] [datetime] NULL, | |
CONSTRAINT [PK_Logxml] PRIMARY KEY CLUSTERED | |
( | |
[ID] ASC | |
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] | |
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] | |
GO |
#一定時間間隔で起動 | |
while(1){ | |
#終了時は、[Ctrl + C] を押す | |
Write-Host "End to [Ctrl + C]" | |
#Connect to the SQL database | |
$SQLserver = "0.0.0.0" -- SQL server name | |
$Icatalog = "TEST" -- Database name | |
$UID = "UID" | |
$PASSWORD = "PASSWORD" | |
$conn = New-Object System.Data.SqlClient.SqlConnection | |
$conn.ConnectionString = "Server = $SQLserver; Database = $Icatalog; User ID = $UID; Password= $PASSWORD;" | |
$Conn.Open() | |
$Command = New-Object System.Data.SQLClient.SQLCommand | |
$Command.Connection = $Conn | |
#FTPで受信するフォルダPathの設定 | |
$filepath = "C:\inetpub\ftproot\test" | |
#フォルダ内の全てのXMLファイルをリスト化 | |
$filelist = Get-ChildItem -name $filepath\*.xml | |
#リストの上から順番にLoad | |
foreach ($filename in $filelist){ | |
$fileinput = Get-Content $filepath\$filename | |
echo "Loading $filename" | |
$output | foreach { | |
$Command.CommandText = "INSERT INTO dbo.Logxml(logxml,filename,creation_date) SELECT CONVERT(XML, BulkColumn) AS BulkColumn,'$filename',getdate() FROM OPENROWSET(BULK '$filepath\$filename', SINGLE_BLOB) AS X" | |
$Command.ExecuteNonQuery() | out-null | |
} | |
#アーカイブフォルダーへファイルの移動 | |
Move-Item $filepath\$filename $filepath\archive | |
} | |
$Conn.Close() | |
#60秒待機 | |
Start-Sleep -Seconds 60 | |
} |
INPUT 1st_BLANK 2nd_BLANK START_POSITION LENGTH GOAL | |
1234567890123 Hello 0980 982134 1adfllkjasf 14 20 15 5 Hello | |
1234567890123456 World!! 0980 982134 1adfllkjasf 17 25 18 7 World!! |
SELECT INPUT | |
--CHARINDEX(検索文字列,検索対象文字列,<OPTION>開始位置) | |
, CHARINDEX(' ',INPUT) AS '1st_BLANK' --1st blank position | |
, CHARINDEX(' ',INPUT,CHARINDEX(' ',INPUT)+1) AS '2nd_BLANK' --2nd blank position | |
, CHARINDEX(' ',INPUT)+1 AS START_POSITION | |
, CHARINDEX(' ',INPUT,CHARINDEX(' ',INPUT)+1) - (CHARINDEX(' ',INPUT)+1) as LENGTH -- 2nd blank - start position | |
--SUBSTRING(文字列,開始位置,長さ) | |
, SUBSTRING(INPUT,CHARINDEX(' ',INPUT)+1,CHARINDEX(' ',INPUT,CHARINDEX(' ',INPUT)+1) - (CHARINDEX(' ',INPUT)+1)) as GOAL | |
FROM (VALUES('1234567890123 Hello 0980 982134 1adfllkjasf') | |
,('1234567890123456 World!! 0980 982134 1adfllkjasf')) as T(INPUT) |
DECLARE | |
l_err_msg VARCHAR2(4000); | |
l_error_code VARCHAR2(4000); | |
l_grp_id NUMBER; | |
l_session_id NUMBER; | |
l_count NUMBER; | |
l_item_id NUMBER; | |
-- | |
BEGIN | |
SELECT USERENV ( 'sessionid') INTO l_session_id FROM DUAL; | |
dbms_output.put_line ('l_session_id is - '||l_session_id ); | |
bompexpl.exploder_userexit ( | |
verify_flag => 0, | |
org_id => XXX, -- Organization_ID | |
order_by => 1, | |
grp_id => 999999, -- 999999をセットして動かしている | |
session_id => '', -- blank でも動く | |
levels_to_explode => 10, | |
bom_or_eng => 1, --1=BOM 2=ENG | |
impl_flag => 1, --1=Implemented Only 2=Implemented and Unimplemented | |
plan_factor_flag => 2, --1=yes 2=No | |
explode_option => 2, --1=ALL 2=Current 3=Current and Future | |
module => 1, --1=Costing 2=BOM 3=Order Entry 4=ATP 5=WSM | |
cst_type_id => 1, | |
std_comp_flag => 2, | |
expl_qty => 5, | |
item_id => l_item_id, | |
alt_desg =>'', | |
comp_code => '', | |
rev_date => TO_CHAR ( SYSDATE, 'YYYY/MM/DD HH24:MI:SS'), | |
err_msg => l_err_msg , | |
error_code => l_error_code); | |
dbms_output.put_line ('l_err_msg is '||l_err_msg ); | |
dbms_output.put_line ('l_error_code is '||l_error_code ); | |
EXCEPTION | |
WHEN OTHERS | |
THEN | |
RAISE_APPLICATION_ERROR(-20001, SQLERRM); | |
-- | |
commit; | |
END; | |
/ |
---- Sample1 | |
BEGIN | |
DBMS_SCHEDULER.CREATE_JOB ( | |
job_name => '"XXX"."YYYYYYY"', -- JOB の名前 | |
job_type => 'PLSQL_BLOCK', | |
job_action => 'BEGIN | |
--dbms_mview.refresh(''------'',''c'', NULL, TRUE, FALSE, 1, 0, 0, FALSE, FALSE); | |
END;', | |
number_of_arguments => 0, | |
start_date => TO_TIMESTAMP_TZ('2017-01-25 00:00:00.000000000 AMERICA/CHICAGO','YYYY-MM-DD HH24:MI:SS.FF TZR'), | |
-- 5時57分から23時57分まで、毎時間流す | |
repeat_interval => 'FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT;BYHOUR=5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23;BYMINUTE=;BYSECOND=0', | |
end_date => NULL, | |
enabled => FALSE, | |
auto_drop => FALSE, | |
comments => 'Refresh ----- every 1 hour'); | |
DBMS_SCHEDULER.SET_ATTRIBUTE( | |
name => '"XXX"."YYYYYYY"', -- JOB の名前 | |
attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF); | |
DBMS_SCHEDULER.enable( | |
name => '"XXX"."YYYYYYY"'); -- JOB の名前 | |
END; | |
---- Sample2 | |
BEGIN | |
DBMS_SCHEDULER.CREATE_JOB ( | |
job_name => '"XXX"."YYYYYYY"', -- JOB の名前 | |
job_type => 'STORED_PROCEDURE', | |
job_action => 'XXXX.ZZZ_MAIN_PKG.XXX',--- Procudere名 | |
number_of_arguments => 0, | |
start_date => NULL, | |
-- 6時から20時まで2時間おきに流す | |
repeat_interval => 'FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT;BYHOUR=6,8,10,12,14,16,18,20;', | |
end_date => NULL, | |
enabled => FALSE, | |
auto_drop => FALSE, | |
comments => 'test'); | |
DBMS_SCHEDULER.SET_ATTRIBUTE( | |
name => '"XXX"."YYYYYYY"', -- JOB の名前 | |
attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF); | |
DBMS_SCHEDULER.enable( | |
name => '"XXX"."YYYYYYY"'); | |
END; |
Private Sub Command1_Click() | |
Dim A As String | |
Dim TEST_D As Date | |
TEST_D = #1/1/2018# | |
A = Format(TEST_D - (Weekday(TEST_D, vbMonday) - 1), "yy") | |
& "-" | |
& Format((DatePart("ww", TEST_D, vbMonday, vbFirstFourDays)), "00") | |
Print A | |
End Sub |
--参考 | |
--https://technet.microsoft.com/en-us/library/ms189493(v=sql.105).aspx | |
-- | |
USE <database-name>; | |
GO | |
-- DBの設定を、SIMPLEモードにする | |
ALTER DATABASE <database-name> SET RECOVERY SIMPLE; | |
GO | |
-- Shrink the truncated log file to 1 MB. | |
DBCC SHRINKFILE (<log-file-name>, 1); | |
GO | |
-- 設定をもどす。洗い替えならSIMPLEのままでよい | |
ALTER DATABASE <database-name> SET RECOVERY FULL; | |
GO |