ORACLEでは小数の数値型が「.75」のように整数部がゼロなしで持っていますが、これをORACLEの設定で「0.75」で持つように出来ないでしょうか?
なお、あるユーティリティで型は数値型でCSVに落としたいのでTO_CHARで書式設定して文字列型に変換するやり方以外でないでしょうか?よろしくお願いします。

 

このQ&Aに関連する最新のQ&A

A 回答 (5件)

#1です。


皆さんと同じ意見ですが、
glogin.sqlファイルに

column コラム名 format 99.99 (sshibaさん記載)

を書いてしまえば何回 sql plusを切断しても
大丈夫です。(^^)
    • good
    • 0

Jittaさんと同様にSQL*Plusネタですが、一時的に設定するなら



column コラム名 format 99.99

のように数値文字列の出力フォーマットを指定することができます。
    • good
    • 0

SQL*PLUSでいいのですか?


$ORACLE_HOME/sqlplus/admin/glogin.sql
の中に書いてしまう・・・とか
    • good
    • 0

#1です。


例を書いた方が良いですね…。

column 列名 format '0.0'

で出来ました。(^^)

この回答への補足

有り難うございます。説明が足らなかったのですが、HULFTというFTP系のソフトを使用してあるDBとのデータ連携するのですが、その際にHULFTのユーティリティでCSVに一度落としてからあげます。その際に、Oracle側の数値の持ち方が「.75」のように持っていると、そのCSVをあげる際にエラーで落ちてしまいます。そのためにはORACLE側で「0.75」として保持していなければいけないようなのです。
勉強不足なのですが、「column」コマンドは一度SQL PLUSを切ってしまうと初期状態に戻ってしまう気がしたのですが。そこで、ORACLEの初期パラメータ等の何か設定がないかと思ったのですが、ないですかね?

補足日時:2003/11/06 10:20
    • good
    • 0

culumnのformatを指定してやるのは?

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q簡単に小数点以下3桁までの液密度を求めたい

よろしくお願いします。液体の密度を簡便な方法で短時間に求める方法を教えてください。飲むヨーグルトのような液体で密度は0.68程度
です。今やっている方法は、1000CCのメスシリンダーにサンプリングして電子天秤で重量を測定し、サンプル重量/1000で求めています。ただ、粘性があってガラスにこびりつきますので測定した後のメスシリンダーの掃除が大変です。2000CCのガラスビーカーも使って見ましたが、いずれにしても測定後の掃除が必要です。サンプル量が少ないと誤差が多いので1.5Lから3L程度までを考えています。
ペットボトルも使って見ましたが結構精度はあるようです。
測定したら容器はポイ捨てできれば最高です。

Aベストアンサー

簡単で精度の高い方法があるのかどうかは分かりませんが・・・
洗浄にはどんな方法を用いていますか?
溶媒を工夫してみてはいかがでしょうか?

QACCESS2003で長整数型のフィールドに小数を入力した場合の動作について

お世話になります。
色々調べてみたのですが分からなかったので質問させて頂きました。

ACCESS2003のテーブル(またはフォーム)で長整数型のフィールドに小数を入力すると、銀行型の丸め?(ex 1.5→2、2.5→2)になってしまいますが、これを通常の四捨五入にすることはできないのでしょうか?

よろしくお願いいたします。

Aベストアンサー

ちょっと手遅れだったかもしれませんが・・・

データ型は整数型のままでも可能です。

テーブルの場合は難しいと思いますが、フォームの場合はテキストボックスで処理すれば整数型のままでもうまく行きました。

テキストボックスの更新後処理のイベントプロシージャ

Private Sub テキスト0_AfterUpdate()
 If IsNumeric(Me.テキスト0.Text) Then
  Me.テキスト0.Value = Int(0.5 + Me.テキスト0.Text)
 End If
End Sub

AfterUpdateの時点で、Valueには既に丸められた結果が入っていますが、Textには入力したデータ(丸められる前)が残ってます。それを利用して計算しています。(Access2000で動作確認)

Q数値を小数点二桁にしたい

セルに小数点十桁くらい入っているのですが、
表示を小数点二桁にしています。
表示ではなくて、実際の値を小数点二桁に
置き換えたいのですが、簡単に置き換える方法は
ありますか?

Aベストアンサー

>表示を小数点二桁にしています

この状態で。

ご利用のエクセルのバージョンがご相談に書かれていませんが、エクセルのオプション(たとえばエクセル2007以降では「詳細設定」)で「表示桁数で計算する」のチェックを一度入れてOKすると、実際の数字が小数点2ケタに置き換わります。

QORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出

ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出したいのですが、方法はありますか?
LONG項目の先頭から30桁分の文字を抽出し、CHAR項目に入力したいのですが。

会社で使用しているERPパッケージでLONG項目があり、どうしてもこの項目から文字が抽出したいのです。

回答のほど宜しくお願いします。

Aベストアンサー

ちょっと質問の意図がわからないのですが、
例えば、T1,T2の2つのテーブルがあったとして、
T1のnumというnumber(10)の項目があって、その中から
先頭の5桁を取ってきて、T2のcommentというCHAR(5)の
項目に転送するなら、
まず、T1のnumから5文字取ってきて、それを変数hoge[chr(5)]に入れる。

select substrb(to_char(num),1,5) into hoge from t1 where id=1;

それから、hogeをT2のcomment列に挿入する。

insert into t2(id,comment) values (1,hoge);

んで、最後にcommitしたらOKです。

こんなもんでよかったでしょうか?

Q大量な小数点について

今回自作で、簡単なベンチマークテストをするために
何千という円周率を求めるプログラムをC言語で作成しようと思っています。
円周率を求めるプログラムは、簡単なストーマーの公式を用いて行おうと思っています。アルゴリズムは理解できているのですが、大量の小数点をC言語でどのように表現しようか考えているとこですが、思いつきません。
どなたか、何千という小数点を扱う方法の伝授をお願いします。

Aベストアンサー

FMT
で検索するとπの計算ソフトが見つかります。
下のURLには何千と言う桁数の計算方法が書いてあります。
また、
RSAの本で橋本晋之介さんの書かれた本にも
多倍長整数の計算のサンプルがあります。
他にも多倍長の数値の計算を説明した本はあります。
あとは、検索して本を買って下さい。

参考URL:http://www.dept.edu.waseda.ac.jp/math/ushiro/ushiro/program/pi.htm

QDlookup関数テキスト型と数値型

いつもお世話になります

Accessで倉庫管理を作製しております。
ItemNameを選択されたら、ItemIDとItemGruopとUnitを一緒に表示させたいです。
以下のコードをつくりましたが型が違いとういエラーになります。
Me![ItemID] = DLookup("[ItemID]", "Inventory", "ItemName='" & ItemName & "'" And Unit" & [Unit] & And ItemGroup='" & Me![ItemGroup] & "'")
ItemIDとUnit:数値型
ItemName と ItemGroup:テキスト型

正しいコードを教えていただきたいです。
よろしくお願いします。

Aベストアンサー

製品を登録するマスターテーブルと、入出庫を記録するテーブルは
一般的には分けて保持します。もちろん製品マスターテーブルに
入庫数、出庫数、初期値などを記録しておくこともありますが、
別に入出庫テーブルを作成する案はどうでしょう。


(1)
たとえば、入出庫テーブルの名前を「T入出庫」とし、
フィールドを

日付
ItemID
入庫数
出庫数

とします。


(2)
(1)のテーブルとInvetoryで以下のクエリを作成し、
名前を「Q入出庫」とします。

SELECT T入出庫.日付, T入出庫.ItemID, Inventory.ItemName, Inventory.Unit, Inventory.Group, T入出庫.入庫数, T入出庫.出庫数
FROM T入出庫 INNER JOIN Inventory ON T入出庫.ItemID = Inventory.ItemID;


(3)
次に、(2)のクエリを基にフォームの新規作成で
表形式を選択し、名前を「F入出庫管理」とします。


(4)
フォームをデザインビューで開き、ItemIDのコントロールを
コンボボックスに変更します。そのコンボボックスの
値集合ソースに以下を設定します。

SELECT Inventory.ItemID, Inventory.ItemName, Inventory.Unit, Inventory.Group
FROM Inventory;

プロパティを以下に設定します。
列数   4
列幅   2cm;2cm;2cm;2cm
リスト幅 7cm
その他は既定


(5)
フォームのItemName、Unit、Groupの各テキストボックスの
「編集ロック」を「はい」にします。


(6)
以下をフォームのコード表に貼り付け保存してください。

Private Sub ItemID_Enter()
If IsNull(Me!日付) Then
MsgBox "日付を先に入力してください"
Me!日付.SetFocus
Exit Sub
End If
End Sub

Private Sub 出庫数_Enter()
If IsNull(Me!日付) Then
MsgBox "日付を先に入力してください"
Me!日付.SetFocus
Exit Sub
End If

If IsNull(Me!ItemName) Then
MsgBox "製品を選択してください"
Exit Sub
End If
End Sub

Private Sub 入庫数_Enter()
If IsNull(Me!日付) Then
MsgBox "日付を先に入力してください"
Me!日付.SetFocus
Exit Sub
End If

If IsNull(Me!ItemName) Then
MsgBox "製品を選択してください"
Exit Sub
End If
End Sub



マスターテーブルが誤って書き変えられないように
(5)での処置を行なっています。
これで一度確認してみてください。

製品を登録するマスターテーブルと、入出庫を記録するテーブルは
一般的には分けて保持します。もちろん製品マスターテーブルに
入庫数、出庫数、初期値などを記録しておくこともありますが、
別に入出庫テーブルを作成する案はどうでしょう。


(1)
たとえば、入出庫テーブルの名前を「T入出庫」とし、
フィールドを

日付
ItemID
入庫数
出庫数

とします。


(2)
(1)のテーブルとInvetoryで以下のクエリを作成し、
名前を「Q入出庫」とします。

SELECT T入出庫.日付, T入出庫.ItemID, Inventory.ItemName, Inv...続きを読む

Q小数点以下

簡単なコトだと思うのですが・・・
『小数点以下3位未満の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

『小数点以下3位以下の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

申し訳ありませんがよろしくお願いします。

Aベストアンサー

『小数点以下3位未満の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

「未満」は小数点以下第3位を含まない、つまり第4位を切り捨てます。
ですから、
0.123です。


『小数点以下3位以下の端数は、切り捨てる』とは
0.12345の場合、どうなるのですか?

「以下」は小数点以下第3位を含む、つまり第3位を切り捨てます。
ですから、
0.12です。

QORACLE の export/import ユーティリティのユーザ単位のimport のときは・・?

oracle7にある表、view,indexなどをoracle8に持っていこうとしています。
ユーザ単位で表やindexをexport し oracle8 に持っていったのですが、元々はindexと表
が別々の表領域にあったのが、すべて同じ表領域になってしまいます。
ユーザ単位でのexportの場合は表領域の情報は格納されないそうですが、
このような場合、一番効率よく、元々の情報(アイテムごとの表領域にもどす)
の形にimport するにはどのようにすればいいのですか?

ちなみにFULLでのEXPORT/IMPORTは使わないでする方法を探しています。

Aベストアンサー

Oracle7の表領域名はわかりますか?

これがわかれば、同じ名前で表領域をOracle8に作成してください。
後はIMPORTを実行するユーザにUnlimited Tablespace権限があれば、
Export元と同じ名前の表領域にデータが格納され、Indexも元の名前の
表領域に作成されます。

Export元と同じ名前の表領域がImport先に存在しない場合、Importを
実行するユーザのデフォルトの表領域にデータが格納されます。

Qエクセル2007で平均値を小数点以下第一位にする方法を教えてください。

いつもお世話になります。
先日エクセルを2007にしました。
平均値を出したのですが、小数点以下第4位まで表示されました。
これを小数点以下第一位までの表示にしたいのですが、
どうしたらいいですか?
以前はボタンひとつで簡単にできたのに…(泣)
ご存知のかた教えてください。
どうぞよろしくお願いします。

Aベストアンサー

そのボタンは「ホ-ム」タブの「数値」グループにある「小数点以下の・・・」ボタンのことではないでしょうか。

Q数値型のテキストボックスを文字型に変えたい

環境:XP&ACCESS2003
数値型のコントロールソースを持つテキストボックスがあります。このテキストボックスに、例えば「8+7」と入力するために、文字型に変換したいのですが。
*このコントロールソースの更新後処理に
Me!テキスト0 = Eval(テキスト0)
と記述しています。
数値型なので、「数値型の為入力できません」旨のエラーが出てしまいます。

Aベストアンサー

エラーは、Trim(str(N)) で回避します。

1、A {Enter} --> 0 を許容する。
2、A + A ----> ヌルとする。

などの基本形は、次のようです。

Private Sub Test_AfterUpdate()
On Error GoTo Err_Test_AfterUpdate
  Dim strShiki As String
  Dim N    As Long

  strShiki = Me.Test & ""
  If InStr(1, strShiki, "+", vbTextCompare) Or InStr(1, strShiki, "-", vbTextCompare) Then
    N = Eval(strShiki)
  Else
    N = Val(strShiki)
  End If
Exit_Test_AfterUpdate:
  Me.Test = IIf(N = -99999, "", Trim(Str(N)))
  Exit Sub
Err_Test_AfterUpdate:
  N = -99999
  Resume Exit_Test_AfterUpdate
End Sub

*0をヌルに置換する場合は、-99999 を 0 に!

エラーは、Trim(str(N)) で回避します。

1、A {Enter} --> 0 を許容する。
2、A + A ----> ヌルとする。

などの基本形は、次のようです。

Private Sub Test_AfterUpdate()
On Error GoTo Err_Test_AfterUpdate
  Dim strShiki As String
  Dim N    As Long

  strShiki = Me.Test & ""
  If InStr(1, strShiki, "+", vbTextCompare) Or InStr(1, strShiki, "-", vbTextCompare) Then
    N = Eval(strShiki)
  Else
    N = Val(strShiki)
  End If
Exit_Test_Af...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング