忍者ブログ
忘れっぽい開発者の備忘録。基本的に自分用メモです。
[1] [2] [3] [4] [5] [6
2017.08.21,Mon
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2011.02.02,Wed
Oracleでデータベースの情報(DBIDとかサービス名とか)が分からない場合、
下記のSQLで取得出来ます。

■現在日付の取得
SELECT  dbid,name,db_unique_name
FROM  v$database;
 
まあ、サービス名が分からないとかそういうのはあんまりないかな…。
サービス名をど忘れした場合とかに使うといいかもしれません。
PR
2011.02.01,Tue
 まだまだよく分かってないMapServerのMapFileの、EXPRESSION部分について。
うちの会社だけかもしんない事も書いてあるので、鵜呑みにしないように。
 
■基本情報
・Oracleなど、SQL文を実行する場合、大抵はCLASSで判断させる。
・EXPRESSION (…)の…部分にwhere文を書く
・ORやANDも使える。
・テーブルの、Aというカラムを条件として指定したい場合は[A]または'[A]'と表記しないと認識できない
 
■その他
・EXPRESSIONをMapFileではなく、プログラムでsetする方法
※かなり端折って書いてます。
 
①EXPRESSIONの条件の内容を指定する
MapFileに EXPRESSION ('[A]' != {0}) と書いてある事前提です。 
 
※プログラム例
ASP.NET(C#)
mapObj map = new mapObj("aaa.map");
layerObj layer = map.getLayer(i);
classObj cls = layer.getClass(j);
string exp = cls.getExpressionString();
exp = string.Format(exp, "a");
cls.setExpression(exp);
 
 
結果、MapFileに EXPRESSION ('[A]' != 'a') と入ることになる。 
 
②EXPRESSIONの条件そのものを指定する
MapFileに EXPRESSION ({0}) と書いてある事前提です。

※プログラム例
ASP.NET(C#)
mapObj map = new mapObj("aaa.map");
layerObj layer = map.getLayer(i);
classObj cls = layer.getClass(j);
string exp = cls.getExpressionString();
exp = string.Format(exp, "'[A]' != 'a'");
cls.setExpression(exp);
 
 
結果、MapFileに EXPRESSION ('[A]' != 'a') と入ることになる。 
 
③MapFileには表記せずに、プログラム上でsetする。
MapFileに EXPRESSION ({0}) などと書いてなくてもOK。

※プログラム例
ASP.NET(C#)
mapObj map = new mapObj("aaa.map");
layerObj layer = map.getLayer(i);
classObj cls = layer.getClass(j);
string exp = cls.getExpressionString();
cls.setExpression("'[A]' != 'a' OR '[B]' != 'b'");
 
 
結果、MapFileに EXPRESSION ('[A]' != 'a' OR '[B]' != 'b') と入ることになる。 

■注意事項
ANDやORを使ってsetExpressionしたい時は③を使用しないと無理っぽい。
恐らくAND、ORが入った状態でFormatを使うからおかしくなる。
MapFile上でsetするなら③とまったく同じことなので、問題なし。
 
とりあえずはこれで終了。

2011.02.01,Tue
 Oracleでは現在日付はsysdateで取得できます。
 
■現在日付の取得
SELECT sysdate FROM dual;

■日付型を文字型に変換
to_char(sysdate ,'yyyy/mm/dd hh24:mi:ss')

■文字型を日付型に変換
to_date('2010/01/05' ,'yyyy/mm/dd')
 
■使用例
※使用テーブル
product_mst
id product insert_date
1 書籍 2011/01/01
2 CD 2011/01/05
3 DVD 2011/01/10

※目的
product_mstのinsert_dateが2010/01/05~2010/01/10のものを取得。

※SQL
SELECT product , to_char(insert_date,'yyyy/mm/dd')
FROM product_mst
WHERE insert_date >= to_date('2011/01/05','yyyy/mm/dd')
AND insert_date <= to_date('2011/01/10','yyyy/mm/dd')
;








※結果
product insert_date
CD 2011/01/05
DVD 2011/01/10



2011.02.01,Tue
■JavaScriptで子ウィンドウを閉じる時に親ウィンドウを更新
 
ただ、子ウィンドウを閉じる前に、親ウィンドウをreloadするだけ。
 
window.opener.location.reload();
window.close();
 

たったこれだけの事なのに悩んでしまったので、残しときます。
 
2011.02.01,Tue
 PostgreSQLでは現在日付は色々な関数で取得できます。
Oracleではsysdateのようなものですね。
 
■現在日付の取得
SELECT now() FROM dual;
SELECT timeofday() FROM dual;
SELECT current_timestamp FROM dual;
 
 
その他、時間を除いた現在日付だけを取得する関数 current_date() や、
現在時間だけを取得する関数 current_time() などがあります。
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
ブログ内検索
Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]