SQLの窓

2018年10月09日


Oracle : sqlplus で、テーブルの create 文( DBMS_METADATA.GET_DDL ) と csv データを出力する

create 文の作成は、DBMS_METADATA.GET_DDL で行います。
※ 94 DBMS_METADATA

sqlplus 内のコマンドについては、SETシステム変数の一覧 を参照して下さい

USER_ALL_TABLES の内容は、ALL_ALL_TABLES を参照して下さい

build_create.sql

sqlplus ユーザ/パスワード@識別子 @build_create
SET LONG 2000000
SET LINESIZE 32767
SET PAGESIZE 0
SET TRIMSPOOL ON
SET FEEDBACK OFF
SET TERMOUT OFF
SPOOL create.sql
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_ALL_TABLES u WHERE u.TABLE_NAME in ('社員マスタ','得意先マスタ');
SPOOL OFF

SPOOL 社員.csv
SELECT 社員コード||','||氏名||','||フリガナ||','||所属||','||性別||','||作成日||','||更新日||','||給与||','||手当||','||管理者||','||生年月日 from 社員マスタ;
SPOOL OFF

EXIT


取得した create table 文

  CREATE TABLE "LIGHTBOX"."得意先マスタ"
   (	"得意先コード" NVARCHAR2(4),
	"得意先名" NVARCHAR2(50),
	"得意先区分" NVARCHAR2(1),
	"担当者" NVARCHAR2(4),
	"郵便番号" NVARCHAR2(7),
	"住所1" NVARCHAR2(100),
	"住所2" NVARCHAR2(100),
	"作成日" DATE,
	"更新日" DATE,
	"締日" NUMBER(2,0),
	"締日区分" NUMBER(1,0),
	"支払日" NUMBER(2,0),
	"備考" NVARCHAR2(100),
	 PRIMARY KEY ("得意先コード")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "LIGHTBOXAREA"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "LIGHTBOXAREA"


  CREATE TABLE "LIGHTBOX"."社員マスタ"
   (	"社員コード" NVARCHAR2(4),
	"氏名" NVARCHAR2(50),
	"フリガナ" NVARCHAR2(50),
	"所属" NVARCHAR2(4),
	"性別" NUMBER(1,0),
	"作成日" DATE,
	"更新日" DATE,
	"給与" NUMBER,
	"手当" NUMBER,
	"管理者" NVARCHAR2(4),
	"生年月日" DATE,
	 PRIMARY KEY ("社員コード")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAUL
T)
  TABLESPACE "LIGHTBOXAREA"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAUL
T)
  TABLESPACE "LIGHTBOXAREA"





posted by lightbox at 2018-10-09 18:22 | Oracle | このブログの読者になる | 更新情報をチェックする

2017年10月12日


Oracle : SQL Plus で、デッドロックテスト ( ORA-00060 )

SQL Plus では、意図的に commit を実行しない限りトランザクションが終わらないので、二つの行を A クライアントと B クライアントで取り合うように UPDATE 文を実行すると、デッドロックを発生させる事ができます。

デッドロック(ORA-00060)が発生した場合、そちらのクライアントで rollback を実行すると、もう片方では更新が完了するので、そちらで commit を実行して更新を確定させます

▼ 対象レコード


A クライアントの SQL
update 商品分類マスタ set 名称 = 'A-野菜'
where 商品分類 = 'A01';

update 商品分類マスタ set 名称 = 'A-果物'
where 商品分類 = 'A02';

B クライアントの SQL
update 商品分類マスタ set 名称 = 'B-果物'
where 商品分類 = 'A02';

update 商品分類マスタ set 名称 = 'B-野菜'
where 商品分類 = 'A01';

実行の経過

A クライアントも B クライアントも違う行を更新して、それぞれ行は更新されますが、commit で確定されていないので実際の更新は行われていません。しかし、これらのレコードに対するロックが有効になります。





次の実行で更新が待機になり、その次の更新でデッドロックが起こり、A クライアントで待機が解除されてデッドロックのステータスが返ります。





デッドロック(ORA-00060)が発生したので、更新はやりなおしになります。いったん rollback を実行して次の更新に備えます( このような処理を何回までリトライするかはシステムであらかじめ決めておきます )



rollback が実行されてロックされていた行が開放されたので、B クライアントでは更新が完了するので、commit で確定させます。





posted by lightbox at 2017-10-12 14:36 | Oracle | このブログの読者になる | 更新情報をチェックする

2014年06月12日


SQL*Plusだけで CSV を作成する

1) 列名リストを作成

郵便番号,都道府県名,市区町村名,町域名


2) エディタで "," を "||','||" に置換する

郵便番号||','||都道府県名||','||市区町村名||','||町域名
( または '"'||郵便番号||'","'||都道府県名||'","'||市区町村名||'","'||町域名||'"' )

3) 以下のようなファイルを作成(csv.sql)
-- ********************************************
-- 1行に表示する文字の最大数
-- 32767 は、SET LINESIZE と入力すると、
-- linesizeオプション 0が範囲(1から32767)外です。
-- と表示される
-- ********************************************
SET LINESIZE 32767

-- ********************************************
-- PAGESIZEを 0に設定すると、ヘッダー、
-- ページブレーク、タイトル、初期空白行
-- その他の書式設定情報をすべて非表示にできます
-- ********************************************
SET PAGESIZE 0

-- ********************************************
-- ONを指定すると、スプール行の終わりの空白
-- が削除--されます
-- ( コンソール表示とは無関係です )
-- ********************************************
SET TRIMSPOOL ON

-- ********************************************
-- レコード数表示や確認メッセージを
-- 非表示にします
-- ********************************************
SET FEEDBACK OFF

-- ********************************************
-- 出力を、画面に表示しません
-- ********************************************
SET TERMOUT OFF

-- ********************************************
-- 結果をファイルに格納します
-- ********************************************
SPOOL 郵便番号マスタ.csv

select 郵便番号||','||都道府県名||','||市区町村名||','||町域名
from 郵便番号マスタ
/

-- ********************************************
-- スプールを停止します
-- ********************************************
SPOOL OFF

-- ********************************************
-- SQL*Plus を終了します
-- ********************************************
EXIT


4) sqlplus の実行

sqlplus ユーザー/パスワード@//PC名/サービス名 @csv

※ @csv は、csv.sql を意味します
※ //PC名/サービス名 は、ローカルネットサービス名でもかまいません
※ //PC名/サービス名 は Express ですと、XE や //PC名/XE が使えると思います
C:\user\work\>sqlplus lightbox/password@//layla/XE @csv

SQL*Plus: Release 11.2.0.2.0 Production on 木 6月 12 02:11:38 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.



Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
に接続されました。
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Productionとの接続が切断されました。
関連する Oracle ドキュメント SQL*Plusレジスタードマークユーザーズ・ガイドおよびリファレンス リリース11.2
タグ:sqlplus Oracle
posted by lightbox at 2014-06-12 02:20 | Oracle | このブログの読者になる | 更新情報をチェックする

2014年05月09日


Oracle XE インストール後の環境情報( Windows )

レジストリ

HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_XE

環境変数は特に設定されません。PATH 環境変数には、直接 ORACLE_HOME 内の情報でパスが設定されています。
▼ Oracle ドキュメント
15 パラメータおよびレジストリの構成

この中で代表的な内容の説明は以下のようになっています
ORACLE_SID
ホスト・コンピュータ上のOracle Databaseインスタンスの名前を指定します。インスタンスのSIDがこのパラメータの値です。デフォルト値は、Oracle Universal Installerのデータベース識別情報ウィンドウのエントリです。

ORACLE_HOME
Oracle製品がインストールされるOracleホーム・ディレクトリを指定します。このディレクトリはOracleディレクトリ階層のOracleベース・ディレクトリのすぐ下に置かれます。デフォルト値は、インストール中に指定するドライブ文字および名前です。
SPFILE
###########################################
# Copyright (c) 1991, 2011, Oracle and/or its affiliates. All rights reserved. 
###########################################
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# Database Identification
###########################################
db_name=XE
 
###########################################
# File Configuration
###########################################
control_files=("C:\oraclexe\app\oracle\oradata\XE\control.dbf")

###############################diagnostic_dest=############
# Job Queues
###########################################
job_queue_processes=4
 
###########################################
# Miscellaneous
###########################################
compatible=11.2.0.0.0
diagnostic_dest=C:\oraclexe\app\oracle\.
memory_target=1024M


###########################################
# Processes and Sessions
###########################################
sessions=20 
 
 
###########################################
# Security and Auditing
###########################################
audit_file_dest=C:\oraclexe\app\oracle\admin\XE\adump
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=XEXDB)"
shared_servers=4 

 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1

###########################################
# Backup and Recovery
###########################################
DB_RECOVERY_FILE_DEST_SIZE = 10G
DB_RECOVERY_FILE_DEST=C:\oraclexe\app\oracle\fast_recovery_area



C:\oraclexe\app\oracle\product\11.2.0\server\config\scripts にある、XE.bat が実行されます。その中に、『postDBCreation.sql』の実行処理があり、その中で SPFILE を作成しています。
DEFINE sysPassword = "&1"
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool C:\oraclexe\app\oracle\product\11.2.0\server\config\log\postDBCreation.log
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
//create or replace directory DB_BACKUPS as 'C:\oraclexe\app\oracle\fast_recovery_area';
begin
   dbms_xdb.sethttpport('8080');
   dbms_xdb.setftpport('0');
end;
/
create spfile='C:\oraclexe\app\oracle\product\11.2.0\server\dbs/spfileXE.ora' FROM pfile='C:\oraclexe\app\oracle\product\11.2.0\server\config\scripts\init.ora';
shutdown immediate;
connect "SYS"/"&&sysPassword" as SYSDBA
startup ;
select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;
execute utl_recomp.recomp_serial();
select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;
alter user hr password expire account lock;
alter user ctxsys password expire account lock;
alter user outln password expire account lock;
alter user MDSYS password expire;
@C:\oraclexe\app\oracle\product\11.2.0\server\apex\apxxepwd.sql "&1"
spool off;
exit

※ C:\oraclexe\app\oracle\product\11.2.0\server\config\log に結果のログがあります

ネットワーク

C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN に、tnsnames.ora があり、ネット・サービス名が定義されています。
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = layla)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

listener.ora には、DEFAULT_SERVICE_LISTENER が定義されており、ユーザーがクライアント側からサービス名を指定せずに、データベースに接続できるようにします。
Oracle Database 11gでは、クライアントがデータベースに接続しようとすると、接続リクエストがリスナーに渡されます。リスナーは複数の異なるデータベースにサービスを実行していることがあります。サービス名がこのパラメータで構成されている場合、ユーザーは必ずしもサービス名を接続構文で指定する必要はありません。ユーザーがサービス名を指定した場合、リスナーは指定したデータベースにユーザーを接続します。サービス名を指定しない場合、リスナーはDEFAULT_SERVICE_listener_nameパラメータで指定されたサービス名にユーザーを接続します。
▼ Oracle ドキュメント 7 Oracle Net Listenerパラメータ(listener.ora) 8 ネーミング・メソッドの構成 select * from V$PARAMETER
NAME VALUE
active_instance_count
aq_tm_processes 0
archive_lag_target 0
asm_diskgroups
asm_diskstring
asm_power_limit 1
asm_preferred_read_failure_groups
audit_file_dest C:\ORACLEXE\APP\ORACLE\ADMIN\XE\ADUMP
audit_sys_operations FALSE
audit_trail NONE
background_core_dump partial
background_dump_dest C:\oraclexe\app\oracle\diag\rdbms\xe\xe\trace
backup_tape_io_slaves FALSE
bitmap_merge_area_size 1048576
blank_trimming FALSE
buffer_pool_keep
buffer_pool_recycle
cell_offload_compaction ADAPTIVE
cell_offload_decryption TRUE
cell_offload_parameters
cell_offload_plan_display AUTO
cell_offload_processing TRUE
circuits
client_result_cache_lag 3000
client_result_cache_size 0
cluster_database FALSE
cluster_database_instances 1
cluster_interconnects
commit_logging
commit_point_strength 1
commit_wait
commit_write
compatible 11.2.0.0.0
control_file_record_keep_time 7
control_files C:\ORACLEXE\APP\ORACLE\ORADATA\XE\CONTROL.DBF
control_management_pack_access NONE
core_dump_dest C:\oraclexe\app\oracle\diag\rdbms\xe\xe\cdump
cpu_count 4
create_bitmap_area_size 8388608
create_stored_outlines
cursor_bind_capture_destination memory+disk
cursor_sharing EXACT
cursor_space_for_time FALSE
db_16k_cache_size 0
db_2k_cache_size 0
db_32k_cache_size 0
db_4k_cache_size 0
db_8k_cache_size 0
db_block_buffers 0
db_block_checking FALSE
db_block_checksum TYPICAL
db_block_size 8192
db_cache_advice ON
db_cache_size 0
db_create_file_dest
db_create_online_log_dest_1
db_create_online_log_dest_2
db_create_online_log_dest_3
db_create_online_log_dest_4
db_create_online_log_dest_5
db_domain
db_file_multiblock_read_count 128
db_file_name_convert
db_files 200
db_flash_cache_file
db_flash_cache_size 0
db_flashback_retention_target 1440
db_keep_cache_size 0
db_lost_write_protect NONE
db_name XE
db_recovery_file_dest C:\oraclexe\app\oracle\fast_recovery_area
db_recovery_file_dest_size 10737418240
db_recycle_cache_size 0
db_securefile PERMITTED
db_ultra_safe OFF
db_unique_name XE
db_unrecoverable_scn_tracking TRUE
db_writer_processes 1
dbwr_io_slaves 0
ddl_lock_timeout 0
deferred_segment_creation TRUE
dg_broker_start FALSE
diagnostic_dest C:\ORACLEXE\APP\ORACLE
disk_asynch_io TRUE
dispatchers (PROTOCOL=TCP) (SERVICE=XEXDB)
distributed_lock_timeout 60
dml_locks 756
dst_upgrade_insert_conv TRUE
enable_ddl_logging FALSE
event
fal_client
fal_server
fast_start_io_target 0
fast_start_mttr_target 0
fast_start_parallel_rollback LOW
file_mapping FALSE
fileio_network_adapters
filesystemio_options
fixed_date
gcs_server_processes 0
global_context_pool_size
global_names FALSE
global_txn_processes 1
hash_area_size 131072
hi_shared_memory_address 0
hs_autoregister TRUE
ifile
instance_groups
instance_name xe
instance_number 0
instance_type RDBMS
java_jit_enabled TRUE
java_max_sessionspace_size 0
java_pool_size 0
java_soft_sessionspace_limit 0
job_queue_processes 4
large_pool_size 0
ldap_directory_access NONE
ldap_directory_sysauth no
license_max_sessions 0
license_max_users 0
license_sessions_warning 0
listener_networks
local_listener
lock_name_space
lock_sga FALSE
log_archive_config
log_archive_dest
log_archive_dest_1
log_archive_dest_10
log_archive_dest_11
log_archive_dest_12
log_archive_dest_13
log_archive_dest_14
log_archive_dest_15
log_archive_dest_16
log_archive_dest_17
log_archive_dest_18
log_archive_dest_19
log_archive_dest_2
log_archive_dest_20
log_archive_dest_21
log_archive_dest_22
log_archive_dest_23
log_archive_dest_24
log_archive_dest_25
log_archive_dest_26
log_archive_dest_27
log_archive_dest_28
log_archive_dest_29
log_archive_dest_3
log_archive_dest_30
log_archive_dest_31
log_archive_dest_4
log_archive_dest_5
log_archive_dest_6
log_archive_dest_7
log_archive_dest_8
log_archive_dest_9
log_archive_dest_state_1 enable
log_archive_dest_state_10 enable
log_archive_dest_state_11 enable
log_archive_dest_state_12 enable
log_archive_dest_state_13 enable
log_archive_dest_state_14 enable
log_archive_dest_state_15 enable
log_archive_dest_state_16 enable
log_archive_dest_state_17 enable
log_archive_dest_state_18 enable
log_archive_dest_state_19 enable
log_archive_dest_state_2 enable
log_archive_dest_state_20 enable
log_archive_dest_state_21 enable
log_archive_dest_state_22 enable
log_archive_dest_state_23 enable
log_archive_dest_state_24 enable
log_archive_dest_state_25 enable
log_archive_dest_state_26 enable
log_archive_dest_state_27 enable
log_archive_dest_state_28 enable
log_archive_dest_state_29 enable
log_archive_dest_state_3 enable
log_archive_dest_state_30 enable
log_archive_dest_state_31 enable
log_archive_dest_state_4 enable
log_archive_dest_state_5 enable
log_archive_dest_state_6 enable
log_archive_dest_state_7 enable
log_archive_dest_state_8 enable
log_archive_dest_state_9 enable
log_archive_duplex_dest
log_archive_format ARC%S_%R.%T
log_archive_local_first TRUE
log_archive_max_processes 4
log_archive_min_succeed_dest 1
log_archive_start FALSE
log_archive_trace 0
log_buffer 5357568
log_checkpoint_interval 0
log_checkpoint_timeout 1800
log_checkpoints_to_alert FALSE
log_file_name_convert
max_dispatchers
max_dump_file_size unlimited
max_enabled_roles 150
max_shared_servers
memory_max_target 1073741824
memory_target 1073741824
nls_calendar GREGORIAN
nls_comp BINARY
nls_currency \
nls_date_format RR-MM-DD
nls_date_language JAPANESE
nls_dual_currency \
nls_iso_currency JAPAN
nls_language JAPANESE
nls_length_semantics BYTE
nls_nchar_conv_excp FALSE
nls_numeric_characters .,
nls_sort BINARY
nls_territory JAPAN
nls_time_format HH24:MI:SSXFF
nls_time_tz_format HH24:MI:SSXFF TZR
nls_timestamp_format RR-MM-DD HH24:MI:SSXFF
nls_timestamp_tz_format RR-MM-DD HH24:MI:SSXFF TZR
O7_DICTIONARY_ACCESSIBILITY FALSE
object_cache_max_size_percent 10
object_cache_optimal_size 102400
olap_page_pool_size 0
open_cursors 300
open_links 4
open_links_per_instance 4
optimizer_capture_sql_plan_baselines FALSE
optimizer_dynamic_sampling 2
optimizer_features_enable 11.2.0.2
optimizer_index_caching 0
optimizer_index_cost_adj 100
optimizer_mode ALL_ROWS
optimizer_secure_view_merging TRUE
optimizer_use_invisible_indexes FALSE
optimizer_use_pending_statistics FALSE
optimizer_use_sql_plan_baselines TRUE
os_authent_prefix OPS$
os_roles FALSE
parallel_adaptive_multi_user TRUE
parallel_automatic_tuning FALSE
parallel_degree_limit CPU
parallel_degree_policy MANUAL
parallel_execution_message_size 16384
parallel_force_local FALSE
parallel_instance_group
parallel_io_cap_enabled FALSE
parallel_max_servers 0
parallel_min_percent 0
parallel_min_servers 0
parallel_min_time_threshold AUTO
parallel_server FALSE
parallel_server_instances 1
parallel_servers_target 64
parallel_threads_per_cpu 2
permit_92_wrap_format TRUE
pga_aggregate_target 0
plscope_settings IDENTIFIERS:NONE
plsql_ccflags
plsql_code_type INTERPRETED
plsql_debug FALSE
plsql_optimize_level 2
plsql_v2_compatibility FALSE
plsql_warnings DISABLE:ALL
pre_page_sga FALSE
processes 100
query_rewrite_enabled TRUE
query_rewrite_integrity enforced
rdbms_server_dn
read_only_open_delayed FALSE
recovery_parallelism 0
recyclebin OFF
redo_transport_user
remote_dependencies_mode TIMESTAMP
remote_listener
remote_login_passwordfile EXCLUSIVE
remote_os_authent FALSE
remote_os_roles FALSE
replication_dependency_tracking TRUE
resource_limit FALSE
resource_manager_cpu_allocation 4
resource_manager_plan
result_cache_max_result 5
result_cache_max_size 0
result_cache_mode MANUAL
result_cache_remote_expiration 0
resumable_timeout 0
rollback_segments
sec_case_sensitive_logon TRUE
sec_max_failed_login_attempts 10
sec_protocol_error_further_action CONTINUE
sec_protocol_error_trace_action TRACE
sec_return_server_release_banner FALSE
serial_reuse disable
service_names XE
session_cached_cursors 50
session_max_open_files 10
sessions 172
sga_max_size 645922816
sga_target 0
shadow_core_dump none
shared_memory_address 0
shared_pool_reserved_size 9437184
shared_pool_size 0
shared_server_sessions
shared_servers 4
skip_unusable_indexes TRUE
smtp_out_server
sort_area_retained_size 0
sort_area_size 65536
spfile C:\ORACLEXE\APP\ORACLE\PRODUCT\11.2.0\
SERVER\DBS\SPFILEXE.ORA
sql_trace FALSE
sql92_security FALSE
sqltune_category DEFAULT
standby_archive_dest %ORACLE_HOME%\RDBMS
standby_file_management MANUAL
star_transformation_enabled FALSE
statistics_level TYPICAL
streams_pool_size 0
tape_asynch_io TRUE
thread 0
timed_os_statistics 0
timed_statistics TRUE
trace_enabled TRUE
tracefile_identifier
transactions 189
transactions_per_rollback_segment 5
undo_management AUTO
undo_retention 900
undo_tablespace UNDOTBS1
use_indirect_data_buffers FALSE
use_large_pages TRUE
user_dump_dest C:\oraclexe\app\oracle\diag\rdbms\xe\xe\trace
utl_file_dir
workarea_size_policy AUTO
xml_db_events enable
この中で、"XE" という文字列が含まれているのは以上です

db_name	XE
db_unique_name	XE
instance_name	xe
service_names	XE




posted by lightbox at 2014-05-09 10:18 | Oracle | このブログの読者になる | 更新情報をチェックする

2014年05月02日


Oracle11g XE( 無償 ) のインストールからテスト用販売管理データのロードまで

ダウンロード : Oracle Database Express Edition 11g Release 2
( このページの『ダウンロードタブ』から )

ライセンスのページ
オラクルは、お客様に対して、
(a)お客様独自の内部的なデータ処理業務のためのお客様のアプリケーションの開発、プロトタイピング及び実行を目的として、本プログラムを使用する非独占的、譲渡不能かつ限定的な使用権を許諾します。
(b)お客様は、お客様のアプリケーションとともに本プログラムを頒布することができます。
(c)お客様は、第三者に対しデモンストレーション及び研修を提供する目的で、本プログラムを使用することができます。
(d)お客様は、お客様の各ライセンシーが本契約の条件に同意する場合、ライセンシーに対し、本プログラムを複製して頒布することができます。 お客様は、本契約で認められている以外の目的で本プログラムを使用することはできません。
ライセンスの文章はどこのものでもわかりにくくなっていますが、インターネットで調べると『商用可能』である事が解ると思います。但し、Oracle は簡単に扱えるデーターベースでは無く、テクニカルサポートは無く、アップデートの提供は無いので商用で利用する条件は実際には相当特別なものとなります。しかし、開発環境を手軽に作れる事は間違い無く、本番環境で扱われる事が想定される SHIFT_JIS との違いさえ知っておけば、特に問題無くどこでも運用可能です。 参考1 : Oracle 11g Express 文字コードを変更する 参考2 : oracle 11g XE でキャラクタセットを変更した時のメモ ※ 既存のデータを使わないのであれば、NVARCHAR2 の文字数と、VARCHAR2 でのバイト数( 普通日本語では1.5倍必要 )の理解があればそのまま使用できます ※ レジストリの NLS_LANG は、JAPANESE_JAPAN.JA16SJISTILDE です。 ※ SELECT * FROM NLS_DATABASE_PARAMETERS で、NLS_NCHAR_CHARACTERSET は AL16UTF16 で、NLS_CHARACTERSET は AL32UTF8 です。 ダウンロードとインストール 一般的なフリーソフトと変わりなく、とても簡単にインストールまではできます。但し、インストール後はサービスが自動起動になりますので、必ず『手動』に切り替えておかないと Oracle はかなりのリソースを使用するので PC が重くなります。サービスは 2つで、XE の場合、OracleServiceXE と OracleXETNSListener で、前者が Oracle データベースのサービスで、後者が通信用のサービスです。 こちらに、インストール時のスクリーンショットを用意しましたが、特筆すべきはなにもありません。 接続確認 インストールされたプログラムに、『SQLコマンドラインの実行(sqlplus.exe /nolog)』がありますから、そこで connect と入力して、system と パスワード(大文字小文字を区別します)を入力してログインします。どうせですから、その際に HR ユーザのアンロックと、ゴミ箱機能の解除をしておくといいと思います。 ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY password; ▼ ゴミ箱機能の解除 ▼ 解除後、再起動したシステムパラメータ ▼ SPFILE("C:\oraclexe\app\oracle\product\11.2.0\server\dbs\SPFILEXE.ORA") の状態 ネット・サービス名の確認 XE と決まっていますが、一応。 場所 : "C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora"
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC名)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

ODBC による接続確認

インストールされた、Oracle in XE という ODBC ドライバで DSN を作成します。ODBC ドライバ単体で接続確認ができますが、DSN を使ってすぐ SHIFT_JIS 環境のアプリケーションからもアクセス可能となります。



スキーマの作成

これが一筋縄では行きませんが、SQL をひたすら実行するだけなので間違いをできるだけ避ける為に、ここでは SQL の窓を使います。



解凍して、WinOfSql.exe を実行し、『O』ボタンで表示されるログインダイアログで、DSN と system と パスワードを入力すると以下のようになります。



右側のテキストエリアで、SQL 文を実行できますので、ACT ボタンで以下の SQL を一つづつ全て実行します。

▼ テーブルスペース作成
create tablespace LIGHTBOXAREA
datafile 'C:\oraclexe\app\oracle\oradata\XE\LIGHTBOX.ORA'
	size 5M
	autoextend on
	next 1M
	maxsize unlimited
segment space management AUTO
ファイルの拡張子は、システムと同じ .DBF でもいいですが、.ORA のほうがユーザ専用として解りやすいので使っています( Oracle 7の名残です ) ▼ ユーザ作成
create user LIGHTBOX
	identified by パスワード
	default tablespace LIGHTBOXAREA
	temporary tablespace TEMP
	quota unlimited on LIGHTBOXAREA
	account unlock
パスワードは大文字小文字を区別するので注意して下さい( あとからでも変更できます / ALTER USER ユーザ名 IDENTIFIED BY パスワード ) ▼ ロール作成
create role LIGHTBOX_ROLE
▼ ロールに権限付与
grant 
	 ALTER PROFILE 
	,ALTER SESSION 
	,ALTER SYSTEM 
	,ALTER TABLESPACE 
	,ALTER USER 
	,CREATE PROCEDURE 
	,CREATE PROFILE 
	,CREATE PUBLIC SYNONYM 
	,CREATE ROLE 
	,CREATE ROLLBACK SEGMENT 
	,CREATE SEQUENCE 
	,CREATE SESSION 
	,CREATE SYNONYM 
	,CREATE TABLE 
	,CREATE TABLESPACE 
	,CREATE TRIGGER 
	,CREATE VIEW 
	,EXECUTE ANY PROCEDURE 
	,SELECT ANY DICTIONARY 
	,SELECT ANY SEQUENCE 
	,SELECT ANY TABLE
to LIGHTBOX_ROLE
▼ ロールをユーザーに適用
grant LIGHTBOX_ROLE to LIGHTBOX
これでやっとテーブルを作成してデータを投入可能になります 状態確認 RDBMS 固有メニューから、『スキーマ一覧』を実行すると以下のようになっています。この後、作成したユーザでログインをしてエラーが無く、テーブル一覧がなにも表示されない事を確認します。 データ投入 MDB から データをインポートするスクリプトを用意していますので、スクリプトの DSN、ユーザ、パスワード を変更して実行して下さい。最初は、テーブルが存在しないので確認のメッセージボックスが表示されますが、2回目以降は一気に作成されます。 スクリプトには、VARCHAR2 用と NVARCHAR2 用があります。都合の良いほうを実行して下さい。 さらに Oracle を管理する為に SQL Developerの使い方〜ダウンロード、インストール、DB接続、SQL実行 関連する記事




posted by lightbox at 2014-05-02 18:45 | Oracle | このブログの読者になる | 更新情報をチェックする

2011年10月04日


Oracle Database 11g のJDBC実装では、SIDを使用したデータベースURL接続文字列は廃止されています

SQLJの基本事項

注意:
Oracle Database 11g のJDBC実装では、SIDを使用したデータベースURL接続文字列は廃止されています。次に例を示します(orclがSID)。 
jdbc:oracle:thin:@localhost:1521:orcl

警告が生成されますが、致命的なエラーではありません。かわりに、次の例のようにmyserviceなどのデータベース
・サービス名を使用することをお薦めします。
 jdbc:oracle:thin:@localhost:1521/myservice

 データベース・サービス名の詳細は、『Oracle Database JDBC開発者ガイドおよびリファレンス』を参照してください。
TOMCAT の実装では、lib に ojdbc6.jar を置いて、プログラムで Class.forName( "oracle.jdbc.driver.OracleDriver" ); を実行した後、
// orcl はデフォルトです
DriverManager.getConnection("jdbc:oracle:thin:@PC名:1521/orcl","ユーザ","パスワード");

で接続確認しました。
( TOMCAT の classpath に登録すると、Class.forName は必要ありません )




タグ:Oracle JDBC
posted by lightbox at 2011-10-04 12:38 | Oracle | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり