前回追加したカラムが必要でないと先輩社員から宣告されてしまったため、ORACLE 9i Silverを読みながら、column(カラム)の削除をすることに。
ALTER TABLE 表名
via:オラクルマスター教科書Silver
DROP COLUMN 列名
;
で、実際に、
ALTER TABLE hoge DROP COLUMN test1 ; |
で実行すると削除できました。
しかしまぁー、つい数日前に追加したカラムを、後から「必要ないからー」といわれて削除するのも、ちょい寂しい気分です。
常にテンパってます。
前回追加したカラムが必要でないと先輩社員から宣告されてしまったため、ORACLE 9i Silverを読みながら、column(カラム)の削除をすることに。
ALTER TABLE 表名
via:オラクルマスター教科書Silver
DROP COLUMN 列名
;
ALTER TABLE hoge DROP COLUMN test1 ; |
少し前に、iGoogle sandboxが登場して、試してみたいなーと思っていたのですが、全然、どうやって参加していいのかわからず、しばらくじっとしていたら、Google-Gadgets-API-Japanに参加方法の投稿がありました。
入り方がわかりました!
via:iGoogle が OpenSocial に対応するようですね。 オプション
以下のページでサインアップした後、
http://www.google.com/ig/sandbox
以下のように "?hl=en" を付けて英語版の iGoogle を表示させれば OK です。
http://www.google.com/ig?hl=en
以降、この英語版 iGoogle が常に OpenSocial サポートになるようです。
元に戻すには左のメニューの上のほうにある「Leave the sandbox」をクリックです。
www.google.co.jp のドメインではダメなので、ご注意を。
まだ右も左もわかりませんが、ガジェットの枠が丸角になって、ちょっと新鮮。
それでは皆さん、 enjoy!
前回、[oracle]column(カラム)の追加で、T.satoさんから、
確かALTER TABLEでカラムの追加をすると
via:T.satoさんのコメント
全部ケツに追加されるんだっけ?
木曜日にデベロッパー交流会に参加しました!!
Androidを使って開発を行ったことがないので、すごく新鮮でした。
Javaを使ってAndroid OSの上で走るアプリを開発できることは知っていたのですが、実際に、どんなアプリができるのか、サンプルアプリをいくつか見たので、今後、開発の参考にしたいなーと思いました。
Android OSって、Linux Kernelでできていたんですね。
しかも、受講者の人たちもほとんどの人たちが、Mac OSを持っていて、すっげーうらやましいなぁーと思ってしまいました。
ほしいなぁー
タイムテーブル ■ 第一部:基調講演 タイトル: Androidでのアプリケーション作成 講師: ジェイソン チェン(Googleデベロッパーアドボケイト) ■ 第二部:パネルディスカッション パネリスト: 安生 真 西島 栄太郎 丸山 不二夫 ジェイソン チェン(Googleデベロッパーアドボケイト) 鄭 隆幸(Google ソフトウェアエンジニア) 岩狭 建(Google ソフトウェアエンジニア) モデレーター:石原 直樹(Google ビジネス プロダクト マネージャー) |
またまた、仕事で、元々あるテーブルにcolumn(カラム)を追加する機会があったので、その方法について書きたいと思います。
ORACLE 9i Silverを参考にすると、
ALTER TABLE 表名
via:オラクルマスター教科書Silver
ADD(列名 データ型 [列制約構文...]
[列名 データ型 [列制約構文...]]...
)
ALTER TABLE hoge( column_01 VARCHAR2(1) , MONSHIN_FLG VARCHAR2(1) ) ; |
仕事でtableのcolumnにコメントを登録することがあったので、方法を書きたいと思います。
ORACLE 9i Silverを参考にすると、
SQL > COMMENT ON TABLE 表名||COLUMN 表名.列名 IS 'コメント';
via:オラクルマスター教科書Silver
COMMENT ON TABLE hoge IS 'ほげ'; |
COMMENT ON COLUMN hoge.hage IS 'テスト'; |
今年も来ました!!
Google Japan Blog: Google Developer Day 2008 Japan 開催決定より
昨年、世界10都市で同時開催された Google Developer Day が今年は13都市に増え、日本では6月10日に横浜での開催されることが決定いたしました。
via:Google Japan Blog: Google Developer Day 2008 Japan 開催決定
環境変数でもあるNLS_LANGをSELECT文で確認したい場合
Olacle 文字コードによると、
SELECT VALUE
via:Olacle 文字コード
FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER='NLS_CHARACTERSET'
;
spoolを、onにしたならば、後で、offもしないと、メモリーに記録が溜まっていくような気がするのですが。。。
SearchMan:Sqlのメッセージをファイルに出力する
ちなみに、spoolをoffにするコマンドは、SQL*Plusを実行したメッセージなどを
via:Sqlのメッセージをファイルに出力する
ファイルに出力する方法です。
SQL>spool /home/oracle/xxxx.log
こんな感じです。
SQL>spool off |
今日もgoogle gearsの使い方を書こうと思ったのですが、最近、仕事で、oracleで日付をいろいろな形で表示しなければならない機会があったので、それらの方法について書きたいと思います。
1.YYYY年MM月DD日と表示する。(年、日、月を、日本語で表示)
ORACLE 9iのSilverを参考にすると、
SELECT TO_CHAR(SYSDATE,'YYYY"年"MONTH DD"日"')
via:オラクルマスター教科書Silver
FROM DUAL
;
2008年4月 17日 |
SELECT REPLACE(TO_CHAR(SYSDATE,'YYYY"年"MONTH DD"日"'),' ') FROM DUAL; |
2008年4月17日 |
select to_char(sysdate,'D') from dual;
via:曜日を求める-ORACLE小技箱
-- 日曜を1,月曜を2とした数字
select to_char(sysdate,'DY') from dual;
-- 略式の曜日 AMERICAN_AMERICAで'WED'、JAPANESE_JAPANで'水'
select to_char(sysdate,'DAY') from dual;
-- 長い表記の曜日 'Wednesday'、'水曜日'
・date 型、小数部で時間を管理している。
via:■時間の演算(時間加算、時間減算)
jcdt date;
jcdt := jcdt + 1 / 24; -- 1 時間加算
jcdt := jcdt - 1 / 24; -- 1 時間減算
select sysdate + 1 / 24 from dual;
select to_char(
sysdate + 1 / 24,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
・date 型、小数部で時間を管理しているので、24 * 60 = 1440 が分の単位となる。
via:■分の演算(分加算、分減算)
jcdt date;
jcdt := jcdt + 1 / 1440; -- 1 分加算
jcdt := jcdt - 1 / 1440; -- 1 分減算
select sysdate + 1 / 1440 from dual;
select to_char(
sysdate + 1 / 1440,
'yyyy.mm.dd hh24:mi:ss'
)
from dual
;
SELECT sysdate + 90/1440 FROM dual; |
SELECT to_char(sysdate + 90/1440,'yyyy/mm/dd/hh24:mi') FROM dual; |
昨日、fieldCountメソッドの紹介をしました。
今日は、カラム名の取得方法について。
Google Gears APIによると、fieldName(int Index)で取得することができます。
var rs = db.execute('select * from hoge'); //カラム数をn個とする。 while (rs.isValidRow()) { for(var k;k<rs.fieldCount();k++){ alert(rs.fieldName(k)); } rs.next(); } rs.close(); |
前々回の記事で、SELECT文を実行して、結果を表示する方法について書きました。
ですが、前に紹介したのは、カラム数分、fieldメソッドを書かなければならず、使いやすいとは言い難いものでした。
そこで、今日は、もっと簡略した方法について紹介したいと思います。
カラム数がたくさんあるとき、または、カラム数がわかっていない場合、DataBase APIによると、fieldCountメソッドを使って、簡略化することができます。
前回は、
var rs = db.execute('select * from hoge'); //カラム数をn個とする。 while (rs.isValidRow()) { alert(rs.field(0) + rs.field(1) + rs.field(2) + ・・・ + rs.field(n)); rs.next(); } rs.close(); |
var rs = db.execute('select * from hoge'); //カラム数をn個とする。 while (rs.isValidRow()) { for(var k;k<rs.fieldCount();k++){ alert(rs.field(k)); } rs.next(); } rs.close(); |
今日も、Google Gearsについての内容を書こうと思っていたら、メールボックスにとってもうれしいメールがo(*^▽^*)o~♪
Google Japan Blogの「Google Japan Blog: デベロッパー交流会(第 6 回)開催のお知らせ、今回のテーマは「 Android SDK 」です」で4月24日にセミナーが開催されることを知って、どーしても行きたくなって、申し込みをしたら、参加OKメールが到着したのです。
ヤタ!!超うれしい、楽しみです。午後休とって、勉強しにいこぉーっと♪(* ̄ー ̄)v
今日も、google gearsの使い方について。
tableのデータを取り出す方法について書きたいと思います。
すでに、tableにデータが入っていた場合、
var rs = db.execute('select * from hoge'); //カラム数をn個とする。 while (rs.isValidRow()) { alert(rs.field(0) + rs.field(1) + rs.field(2) + ・・・ + rs.field(n)); rs.next(); } rs.close(); |
Releases the state associated with this result set
via:Database Module API
You are required to call close() when you are finished with any result set.
前々回、google gearsで、SQL文を実行する前に、Objectの設定をする必要性を書きました。
そこで、今回は、SQL文の実行をしてみたいと思います。
Database Module APIを参考にすると、google.gears.factory.create('beta.database')を作成後、database名でopenします。
流れとしては、こんな感じ。
var db = google.gears.factory.create('beta.database');
via:Database Module API
db.open('database-test');
db.open(); |
Windows Vista - Internet Explorer
via:Location of Database File(一部抜粋)
Location: {FOLDERID_LocalAppDataLow}\Google\Google Gears for Internet Explorer
Example: C:\Users\Bob\AppData\LocalLow\Google\Google Gears for Internet Explorer
Windows XP - Internet Explorer
Location: C:\Documents and Settings\\Local Settings\Application Data\Google\Google Gears for Internet Explorer
Example: C:\Documents and Settings\Bob\Local Settings\Application Data\Google\Google Gears for Internet Explorer
Windows XP - Firefox
Location: C:\Documents and Settings\\Local Settings\Application Data\Mozilla\Firefox\Profiles\{profile}\Google Gears for Firefox
Example: C:\Documents and Settings\Bob\Local Settings\Application Data\Mozilla\Firefox\Profiles\uelib44s.default\Google Gears for Firefox
var db = google.gears.factory.create('beta.database');
via:Database Module API
db.open('database-test');
/* テーブルを作成する */
db.execute('create table if not exists Test' + ' (Phrase text, Timestamp int)');
/* insertでデータを登録 */
db.execute('insert into Test values (?, ?)', ['Monkey!', new Date().getTime()]);
/* selectでデータを取得 */
var rs = db.execute('select * from Test order by Timestamp desc');
db.execute('insert into Test values (' + '"Monkey!"' + ',' + new Date().getTime() +')'); |
db.execute('insert into Test values (?, ?)', ['Monkey!', new Date().getTime()]); |
db.execute('insert into Tablename values (?1, ?2,・・・,?n)', [p1, p2,・・・,pn]); |
そうそう、ちょっと前に、TechCrunchのGoogle Talk、ブログやサイトでチャットが楽しめるChatbackウィジェット公開という記事で、Blog上で、Google Talkにログインしているかどうか確認できるツールが紹介されていて、さっそく装備しました。
ログインしていると、緑色に点灯します。
普段、仕事をしているので、なかなか、ログインできないのですが、ブログやサイト上で、著者のログイン状態の確認ができて、しかも、コミュニケーションとることができるなんて、すごいなと改めて記事を書いて思いました。
昨日に引き続き、今日もGoogle Gearsネタ!!
いろいろな機能があるんだけど、まずは、Databaseセクションを中心に書きたいと思います。
使い方を書く前に、まず、OracleやWindows SQL Serverと明らかに違う特徴だなーと思ったのは、JavaScriptでDBを操作することができる点です。
Oracleなどは、一回、サーバーサイドの言語(asp、coldfusionなどなど)で処理を行わなければならないのですが、Google Gearsの場合は、クライアントで処理できる点が実に魅力的♪(* ̄ー ̄)vだと思いました。
というわけで、どんな風に使うのか、気になったので、APIを調べました。
Google Gearsは、sqliteをベースとした、Databaseシステムなので、SQLiteに準拠する実行文を書けば基本的には、OKだと思います。
(SQLiteがサポートしているSQLコマンドは、こちら)
(あと、例外に関するサポートに違いあり!!)
で、SQL文の書き方を把握することができたのですが、一体、どうやってJavaScript上で実行するのか??
それには、まず、実行する前に、Objectを作る必要がありそうです。
var db = google.gears.factory.create('beta.database'); |
<script type="text/javascript" src="gears_init.js"></script>
via:Database Module API
<script type="text/javascript">
var db = google.gears.factory.create('beta.database');
db.open('database-test');
db.execute('create table if not exists Test' + ' (Phrase text, Timestamp int)');
db.execute('insert into Test values (?, ?)', ['Monkey!', new Date().getTime()]);
var rs = db.execute('select * from Test order by Timestamp desc');
while (rs.isValidRow()) {
alert(rs.field(0) + '@' + rs.field(1));
rs.next();
}
rs.close();
</script>
GoogleGearsに対応したObjectBrwoserをそろそろ公開しようと思ったので、Google Gears APIで学んだことを書いていきたいと思います。
Google Gearsを使うこと際に重要になってくるのは、ブラウザーがすでにGearsをインストールをしているかどうかです。
サイトを訪問している人が、すでにGearsをインストールをしているかの確認は、Getting Startedを読んでみると、下のソースで確認することができます。
<script src="gears_init.js"></script>
via:Nuts and Bolts: Detecting and Installing Google Gears
<script>
if (!window.google || !google.gears) {
location.href = "http://gears.google.com/?action=install&message=<your welcome message>" + "&return=<your website url>";
}
</script>
会社で資料を作る機会があったので、どうせならと思い、エクセルではなくhtmlで作成。
そして、ただのhtmlではなく、プレゼン用として使えないかと思い、プレゼンシート用のテンプレートを作り、google codeにアップロードしました。
こちらから参照することができます。
ちなみにシートですが、下のようなデザインにしました。
クリックするとフルスクリーンでみることができます。
前回、JavaScriptでスクロールの移動をさせる日記を書きました。
後になって気が付いたのですが、肝心の位置が取得ができたとしても、取得した値までスクロールさせたい場合どうするんだろうーと。
そこで、ちょっと調べたら@ITのJava Solution 会議室に答えがありました。
<div id="hoge">
via:Javascriptでスクロールバーのスクロール位置を決められますか?
...
</div>
というのがあるとしまして、
document.getElementById("hoge").scrollTop = 100;
みたいなイメージです。
google ガジェットを公開しているとコメント欄にご要望を頂くことがあります。
今回、とても驚いたことがありました。
それは、なんと、なんと、SeeqPodガジェットのコメント欄に外人のコメントがあったのです。
こちらで確認することができるのですが、いや~~~、びっくりしたー。
やはり、海外で展開されているサービスをガジェットにすると、コメント欄も外国の方にしていただけるんだなーということを冷静に学びました。
で、肝心の内容ですが、
the Other SeeqPod gadget is better
The other SeeqPod gadget is the real thing, embedded in your iGoogle page. It's by Derrick Sakima. This one just takes your search and launches SeeqPod.com in another window.
Play without opening new window?
seeqpod is a nice app for streaming tunes...it finds most anything i can think of. is there a way the gadget could be expanded to play on my igoogle screen instead of opening a new window?
via:コメント欄
SQLで、CASE式を使う機会があったので、まとめてみたいと思います。
まず、ORACLE 9i Silverを参考にすると
SELECT 名前 , 受験科目 , CASE 点数 WHEN 80 THEN '合格' WHEN 50 THEN '追試' ELSE '不合格' END FROM テスト WHERE 学籍番号 = 200608 |
--検索CASE式
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE 'その他' END
via:CASE式のススメ
だいぶ前に、iGoogle上で、音楽のランキングを確認したいと思い、音楽ランキングtop5を作ったのですが、毎回、毎回、iGoogleを立ち上げる度に、会社のアクセス制御に引っかかってしまって、ちょっとうざいなーと思ったので、今回、削除することにしました。
すごく勝手な理由ですが、今まで使って下さった方、ご利用いただきましてありがとうございました♪(* ̄ー ̄)v
昨日、初めて、ORA-00001エラーが発生しました。
ORA-00001: unique constraint (スキーマー名.制約名) violated |
昨日、T.SATOさんから、
PL/SQLにもforやwhileループあるはずだよ!
via:T.SATOさん
DECLARE BEGIN FOR ln_Count IN 0..9 LOOP DBMS_OUTPUT.PUT_LINE(ln_Count); END LOOP; END; |
0 1 2 3 4 5 6 7 8 9 |
DECLARE ln_Count NUMBER; BEGIN FOR ln_Count IN 0..9 LOOP DBMS_OUTPUT.PUT_LINE(ln_Count); END LOOP; END; |
DECLARE ln_Count VARCHAR2(1); BEGIN FOR ln_Count IN 0..9 LOOP DBMS_OUTPUT.PUT_LINE(ln_Count); END LOOP; END; |
DECLARE ln_Count NUMBER; BEGIN FOR ln_Count IN 0..9 LOOP DBMS_OUTPUT.PUT_LINE(ln_Count); END LOOP; DBMS_OUTPUT.PUT_LINE('hoge1'); DBMS_OUTPUT.PUT_LINE(ln_Count); DBMS_OUTPUT.PUT_LINE('hoge2'); END; |
0 1 2 3 4 5 6 7 8 9 hoge1 hoge2 |
ORACLEのPL/SQLでJavaScriptのFor文にあたる実装ができないものかと考えてみました。
例えば、JavaScriptで
//nは定数 for(var i=0; i<=n;i++){ 処理・・・; } |
DECLARE ln_Count NUMBER ; BEGIN ln_Count := 0; --nは定数 LOOP EXIT WHEN ln_Count >= n; 処理・・・; ln_Count := ln_Count + 1; END LOOP; END; / |
今日初めてSELECT-INSERT文を使いました。
あるTABLEから一定量のデータを登録したい場合、本来ならば、
--1回目のINSERT文 INSERT INTO hoge(column) VALUES(data1); --2回目のINSERT文 INSERT INTO hoge(column) VALUES(data2); --3回目のINSERT文 INSERT INTO hoge(column) VALUES(data3); ・ ・ ・ --n回目 INSERT INTO hoge(column) VALUES(datan); COMMIT; |
SELECT data FROM hoge2 ); INSERT INTO hoge(column) SELECT data FROM hoge2 ; COMMIT; |
SELECT data , 'Constant_Value' --定数 FROM hoge2 ); INSERT INTO hoge(column1,column2) SELECT data , 'Constant_Value' --定数 FROM hoge2 ; COMMIT; |
昨日、スタイルシートの「表示モード」とJavaScriptを使って表示モードを取得する方法について書きました。
で、どーしてこれが必要なのかというと、scrollTop、scrollHeight、scrollWidthなどを使いたい場合、表示モードによって、実装の仕方が変わってくるので、取得する必要があるのです。
IE6では標準モードの場合、「document.body」の属性取得で不適切な値が返されることがあります。
via:スクロール位置取得:kl_slx/y()
document.body.clientWidth/clientHeight/scrollWidth/scrollHeight などなど。
/* IEの場合 */ var hoge; //標準モードの場合 if(document.compatMode == "CSS1Compat"){ hoge = document.documentElement.scrollTop; //互換モードの場合 }else{ hoge = document.body.scrollTop; } |
さっき、buzz bloggerを読んでいて、ものすごいことを発見しちゃいました。
google版twitterが、2008年後半にリリースされるかもしれないという記事が書いてあったのです。
Blogger Buzz: Announcing Google Weblogs (beta)という記事なのですが、
そこには、
Today we’d like to offer you a sneak peek at an exciting new product we’ve been working on: Google Weblogs.
via:Announcing Google Weblogs (beta)
スタイルシートに「表示モード」というのがあることを知りました。
TAG indexの「表示モードの違い」によると、
一般的なブラウザ(古いバージョンを除く)には、「標準モード」と「互換モード」という2つの表示モードが備わっています。
via:表示モードの違い
(DOCTYPE宣言の記述にURLを含めるかどうかにより、ブラウザ側の表示モードが自動的に切り替わる仕組みになっています。)
document.compatMode |
CSSの表示モード:
・Standardモードが選択されるケース
via:ブラウザのレンダリングモード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
・Quirksモードが選択されるケース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">