[Oracle] BLOBとは?

BLOB型とはBinary Large Objectの略で、バイナリーデータを保存できる。
最大は4GBから1を引いたバイト数にデータベース・ブロック・サイズを掛けた値
画像をBLOBカラムに格納する
Oracleだけでなく、MySQLでもある

あまり見ない印象だが、画像データそのものをデータベースに保存することなんてあるんだ。。。

[Oracle] NUMBER型、DATE型をmysqlに挿入する

### NUMBER型(oracle)とDecimal型(mysql)
NUMBER型
L NUMBER(精度,位取り)単位で、精度:38桁、位取り:-84~127桁のデータを格納
Decimal型
L DECIMAL(精度,位取り)単位で、精度:65桁、位取り:0~30桁

-> 位取りが「負」の場合、あるいは「31以上」が指定されていた場合に桁あふれが発生する可能性あり

### OracleのDATE型とMySQLのtimestamp型、datetime型
DATE型
 L 年月日・時分秒単位で、西暦前4712年1月1日0時0分0秒~西暦9999年12月31日23時59分59秒の期間のデータを格納
date型
 L 年月日・時分秒・マイクロ秒単位で、西暦前1000年1月1日0時0分0.000001秒~西暦9999年12月31日23時59分59.999999秒の期間のデータを格納
-> 西暦前1000年1月1日0時0分0秒より古いデータの有無、及びナノ秒単位のデータの有無に注意する必要あり
datetime型
 L ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’
timestamp型
L ‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-19 03:14:07’ UTC

なんやと、データ連携って、データベースがOracleとMySQLだと全然単純な話じゃないんだな。
参ったぜ。

[Oracle] VARCHARとVARCHAR2の違い

– オラクルの型に、VARCHARとVARCHAR2があるが、VARCHARは古い文字列型で、VARCHAR2はそれを拡張して作られた新しい文字列型
– VARCHARデータ型は、VARCHAR2データ型と同義

なるほど、違いはないのね。。

What is mysql data type of Oracle “NUMBER”?

Oracle data type: NUMBER
The “NUMBER” data type stores fixed and floating point numbers. It can store virtually any numerical value. If your system is running Oracle Database, portability between systems is guaranteed with up to 38 digits of precision.

The NUMBER column can contain the following numbers:

A positive number in the range 1 x 10 – 130 to 9.99 … 9x 10125

Oracle guarantees the portability of numbers with the precision of 38 digits or less. When specifying numeric fields, it is better to specify precision and scale.

MySQL Data type
BIG INT:NUMBER (19, 0)
INT:NUMBER(10,0)
MEDIUMINT:NUMBER(7, 0)
NUMERIC:NUMBER
SMALLINT:NUMBER(5,0)
TINYINT:NUMBER(3,0)
YEAR:NUMBER

primary keyのIDでnumberを使われていれば、intでいいでしょうね。

Oracle Long

Columns defined as Long can store variable-length character data containing up to 2 GB of information. Long data is text data which is converted properly even if it moves between different systems.

Columns of the LONG data type are used in the data dictionary to store the text of the view definition. You can use the Long column of the SELECT list, the SET clause of the UPDATE statement, and the VALUES clause of the INSERT statement.

java.util.Properties props = new java.util.Properties();
props.put("user", "scott");
props.put("password", "tiger");
props.put("server", "myserver");

Driver myDriver = (Driver)
  Class.forName("weblogic.jdbc.oci.Driver").newInstance();

Connection conn = (weblogic.jdbc.oci.Connection)
	myDriver.connect("jdbc:weblogic:oracle", props);

	conn.waitOnResources(true);