A Collection of all my OMB+ / tcl scripts to manage my OWB (Oracle Warehouse Builder) stuff
Friday, February 17, 2012
OMB single quote in tcl
https://forums.oracle.com/forums/thread.jspa?threadID=2347623&tstart=0
Just use two single quotes for one ....
Till Next Time
Wednesday, February 15, 2012
OMB OWB TCL Repair NULL.
############################################################
# #
# Set Expression OWB Repair NULL #
# #
# During Migration from OWB10.1 to 11gR2 an Expression #
# NULL is migrated as 'NULL' making it a VARCHAR(4) #
# This script repairs it for all Operators called: #
# - C_STANDAARD #
# #
# (C) Ciber Nederland John Minkjan #
# http:\\OMB101.blogspot.com #
# V001 Init Version #
# V002 Validated against OWB11gR2 #
# #
############################################################
#Disconnect if connected
catch {
OMBDISCONNECT;
};
# Connect
OMBCONNECT ****/*******@*******:1521:OWB_POC \
USE WORKSPACE '*******';
# Set OMBPROMPT
set OMBPROMPT ON;
# Set ProjectList
set ProjectList [list ********];
foreach Project $ProjectList {
OMBCC '$Project'
set ModuleList [OMBLIST ORACLE_MODULES]
#set ModuleList [list DM_DNI]
foreach Module $ModuleList {
OMBCC '$Module';
set MappingList [OMBLIST MAPPINGS]
foreach Mapping $MappingList {
set OperatorList [OMBRETRIEVE MAPPING '$Mapping' GET OPERATORS];
foreach Operator $OperatorList {
if {$Operator == "C_STANDAARD"} {
puts "$Module - $Mapping - $Operator - ";
set GroupsList [OMBRETRIEVE MAPPING '$Mapping' \
OPERATOR '$Operator' \
GET GROUPS];
foreach Group $GroupsList {
puts "$Module - $Mapping - $Operator - $Group ";
set AttributeList [OMBRETRIEVE MAPPING '$Mapping' \
OPERATOR '$Operator' \
GROUP '$Group' \
GET ATTRIBUTES]
foreach Attribute $AttributeList {
puts "$Module - $Mapping - $Operator - $Group - $Attribute ";
set Expression [OMBRETRIEVE MAPPING '$Mapping' \
OPERATOR '$Operator' \
GROUP '$Group' \
ATTRIBUTE '$Attribute' \
GET PROPERTIES (EXPRESSION)]
puts "Current Expression: $Expression"
if {$Expression == "\'NULL\'"} {
puts "BINGO"
puts [OMBALTER MAPPING '$Mapping' \
MODIFY ATTRIBUTE '$Attribute' \
OF GROUP '$Group' \
OF OPERATOR '$Operator' \
SET PROPERTIES (EXPRESSION) VALUES('TO_CHAR(NULL)')]
set Expression [OMBRETRIEVE MAPPING '$Mapping' \
OPERATOR '$Operator' \
GROUP '$Group' \
ATTRIBUTE '$Attribute' \
GET PROPERTIES (EXPRESSION)]
puts "Current Expression: $Expression"
OMBCOMMIT;
}
};
};
};
};
};
OMBCC '..';
};
OMBCOMMIT;
OMBCC '..';
};
OMBSAVE;
Download found here: Repair NULL
Till Next Time
Wednesday, February 8, 2012
OMB OWB “CURRENT” Constants
Some nice constants to use in your scripts:
-
$OMB_CURRENT_PROJECT
: Stores the name of the current project. -
$OMB_CURRENT_SESSION
: Stores the identifier of the current session. -
$OMB_CURRENT_USER
: Stores the user ID of the current user.
Till Next Time
OMB Set Tablespaces
############################################################
# #
# Set Tablespace OWB TABLES #
# #
# (C) Ciber Nederland John Minkjan #
# http:\\OMB101.blogspot.com #
# V001 Init Version #
# V002 Validated against OWB11gR2 #
# #
############################################################
# use connection file
source C:\\OMB_CONNECT.tcl
# Switch ON Prompt
set OMBPROMPT ON;
set projectList [list ********];
foreach project $projectList {
OMBCC '$project';
set moduleList [OMBLIST ORACLE_MODULES];
puts $moduleList;
foreach module $moduleList {
OMBCC '$module'
set tableList [OMBLIST TABLES];
foreach table $tableList {
set alterTableCommand [OMBALTER TABLE '$table' SET PROPERTIES (TABLESPACE) VALUES ('USERS')];
puts alterTableCommand;
};
puts $tableList;
OMBCC '..';
};
OMBCC '..';
}
OMBCOMMIT;
OMBDISCONNECT;
File can be found here:
https://sites.google.com/site/filesof101/omb101/OMB_CHANGE_LOCATION.tcl?attredirects=0&d=1
Till Next Time
OMB Change Location
############################################################
# #
# Change Location Properties #
# #
# (C) Ciber Nederland John Minkjan #
# http:\\OMB101.blogspot.com #
# V001 Init Version #
# V002 Validated against OWB11gR2 #
# #
############################################################
# use connection file
source C:\\OMB_CONNECT.tcl
# Switch ON Prompt
set OMBPROMPT ON;
set LocationList [OMBLIST LOCATIONS];
foreach Location $LocationList {
if [catch {
set GetLocationType [OMBRETRIEVE LOCATION '$Location' GET PROPERTIES (CONNECTION_TYPE)];
} errmsg] { set GetLocationType 'UNKNOWN'};
if {$GetLocationType == "HOST:PORT:SERVICE"} {
if {$Location != "OWB_REPOSITORY_LOCATION"} {
set alterLocationCommand [OMBALTER LOCATION '$Location' SET PROPERTIES (HOST) VALUES ('HOSTNAME')];
set alterLocationCommand [OMBALTER LOCATION '$Location' SET PROPERTIES (PORT) VALUES ('1521')];
set alterLocationCommand [OMBALTER LOCATION '$Location' SET PROPERTIES (SERVICE_NAME) VALUES ('DWH_POC')];
set alterLocationCommand [OMBALTER LOCATION '$Location' SET PROPERTIES (VERSION) VALUES ('11.2')];
set alterLocationCommand [OMBALTER LOCATION '$Location' SET PROPERTIES (USER_NAME) VALUES ('$Location')];
set alterLocationCommand [OMBALTER LOCATION '$Location' SET PROPERTIES (PASSWORD) VALUES ('********')];
# PASSWORD isn't always accepted, has to be checked manualy
OMBCOMMIT;
}
};
};
OMBCOMMIT;
OMBDISCONNECT;
Fill can be downloaded here: https://sites.google.com/site/filesof101/omb101/OMB_CHANGE_LOCATION.tcl?attredirects=0&d=1
Till Next Time
Friday, November 11, 2011
OMB Get Repository Documentation
# #
# COMPILE OWB Repository #
# #
# Get the Repository documentation #
# Output is written to file in RootDir #
# #
# (C) Ciber Nederland John Minkjan OMB101.blogspot.com #
# V001 Init Version #
# V002 Validated against OWB11gR2 #
# #
#########################################################################################################
#OMBCONNECT rep_owner/rep_owner@localhost:1521:orcl USE WORKSPACE 'My_Workspace'
#set OMBPROMPT ON
# RootDir
set RootDir "C:\\temp\\"
set ProjectList [OMBLIST PROJECTS];
foreach ProjectName $ProjectList {
if {$ProjectName != "PUBLIC_PROJECT"} {
set chan [open [string map {\\ /} "$RootDir\\ProjectSummery_$ProjectName.txt"] w];
set timestamp [clock format [clock seconds]];
puts $chan "Project Summery: $ProjectName Run: $timestamp";
puts $chan "";
set ProjectDescription [OMBRETRIEVE PROJECT '$ProjectName' GET PROPERTIES (DESCRIPTION)];
puts $chan "Project Description: $ProjectDescription";
OMBCC '$ProjectName';
puts $chan "";
puts $chan "$ProjectName: ORACLE_MODULES";
puts $chan "";
set ModuleList [OMBLIST ORACLE_MODULES];
foreach ModuleName $ModuleList {
OMBCC '$ModuleName';
set plural "S"
set ObjectList [list MAPPING DATA_AUDITOR DIMENSION CUBE TABLE EXTERNAL_TABLE VIEW MATERIALIZED_VIEW SEQUENCE FUNCTION PROCEDURE TABLE_FUNCTION PACKAGE]
foreach ObjectName $ObjectList {
set workListName [concat $ObjectName$plural];
set workList [OMBLIST $workListName];
foreach workName $workList {
set ProjectDescription [OMBRETRIEVE $ObjectName '$workName' GET PROPERTIES (DESCRIPTION)]
puts "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
puts $chan "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
}
;
};
OMBCC '..';
};
puts $chan "";
puts $chan "$ProjectName: FLAT_FILE_MODULES";
puts $chan "";
set ModuleList [OMBLIST FLAT_FILE_MODULES];
foreach ModuleName $ModuleList {
OMBCC '$ModuleName';
set plural "S"
set ObjectList [list FLAT_FILE]
foreach ObjectName $ObjectList {
set workListName [concat $ObjectName$plural];
set workList [OMBLIST $workListName];
foreach workName $workList {
set ProjectDescription [OMBRETRIEVE $ObjectName '$workName' GET PROPERTIES (DESCRIPTION)]
puts "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
puts $chan "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
};
};
OMBCC '..';
};
puts $chan "";
puts $chan "$ProjectName: PROCESS_FLOW_MODULES";
puts $chan "";
set ModuleList [OMBLIST PROCESS_FLOW_MODULES]
puts $ModuleList
foreach ModuleName $ModuleList {
puts $ModuleName
OMBCC '$ModuleName';
set plural "S"
set ObjectList [list PROCESS_FLOW_PACKAGE]
foreach ObjectName $ObjectList {
set workListName [concat $ObjectName$plural];
set workList [OMBLIST $workListName];
foreach workName $workList {
set ProjectDescription [OMBRETRIEVE $ObjectName '$workName' GET PROPERTIES (DESCRIPTION)]
puts "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
puts $chan "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
};
};
OMBCC '..';
};
puts $chan "";
puts $chan "$ProjectName: CALENDAR_MODULES";
puts $chan "";
set ModuleList [OMBLIST CALENDAR_MODULES]
foreach ModuleName $ModuleList {
OMBCC '$ModuleName';
set plural "S"
set ObjectList [list CALENDAR]
foreach ObjectName $ObjectList {
set workListName [concat $ObjectName$plural];
set workList [OMBLIST $workListName];
foreach workName $workList {
set ProjectDescription [OMBRETRIEVE $ObjectName '$workName' GET PROPERTIES (DESCRIPTION)]
puts "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
puts $chan "$ProjectName - $ModuleName - $ObjectName - '$workName' - $ProjectDescription"
};
};
OMBCC '..';
};
puts $chan "";
puts $chan "$ProjectName: CONFIGURATIONS";
puts $chan "";
set ModuleList [OMBLIST CONFIGURATIONS];
foreach ModuleName $ModuleList {
set ProjectDescription [OMBRETRIEVE CONFIGURATION '$ModuleName' GET PROPERTIES (DESCRIPTION)]
puts "$ProjectName - $ModuleName - $ProjectDescription"
puts $chan "$ProjectName - $ModuleName - $ProjectDescription"
};
OMBCC '..';
close $chan;
}
}
Wednesday, November 9, 2011
OMB VALIDATE Without Deploy
# #
# Validate OWB Repository #
# #
# Validate Objects in OWB repository without deploymeny #
# Output is written in folder set of RootDir #
# #
# (C) Ciber Nederland John Minkjan OMB101.blogspot.com #
# V001 Init Version #
# V002 Validated against OWB11gR2 #
# #
#########################################################################################################
# RootDir
set RootDir "C:\\temp\\"
# Open Log
set chan [open [string map {\\ /} "$RootDir\\log.txt"] w]
set timestamp [clock format [clock seconds]]
puts $chan $timestamp
# Get the projects lists
set ProjectList [OMBLIST PROJECTS];
foreach ProjectName $ProjectList {
OMBCC '$ProjectName';
file mkdir $RootDir$ProjectName
set ModuleList [OMBLIST ORACLE_MODULES];
foreach ModuleName $ModuleList {
OMBCC '$ModuleName';
file mkdir [concat "$RootDir$ProjectName\\$ModuleName"];
set plural "S"
set ObjectList [list TABLE MAPPING FUNCTION PROCEDURE TABLE_FUNCTION PACKAGE DATA_AUDITOR DIMENSION CUBE EXTERNAL_TABLE VIEW MATERIALIZED_VIEW SEQUENCE]
foreach ObjectName $ObjectList {
set workListName [concat $ObjectName$plural];
set workList [OMBLIST $workListName];
foreach workName $workList {
set outputFileName [string map {\\ /} [concat "$RootDir$ProjectName\\$ModuleName\\Validation$ObjectName$plural.txt"]]
set isValid [OMBVALIDATE $ObjectName '$workName' OUTPUT VALIDATION_RESULT TO FILE '$outputFileName' WRITE ALL]
puts $chan "$ProjectName - $ModuleName - $ObjectName - '$workName' - $isValid"
};
};
OMBCC '..';
};
set ModuleList [OMBLIST FLAT_FILE_MODULES];
foreach ModuleName $ModuleList {
OMBCC '$ModuleName';
file mkdir [concat "$RootDir$ProjectName\\$ModuleName"]
set plural "S"
set ObjectList [list FLAT_FILE]
foreach ObjectName $ObjectList {
set workListName [concat $ObjectName$plural];
set workList [OMBLIST $workListName];
foreach workName $workList {
set outputFileName [string map {\\ /} [concat "$RootDir$ProjectName\\$ModuleName\\Validation$ObjectName$plural.txt"]]
set isValid [OMBVALIDATE $ObjectName '$workName' OUTPUT VALIDATION_RESULT TO FILE '$outputFileName' WRITE ALL]
puts $chan "$ProjectName - $ModuleName - $ObjectName - '$workName' - $isValid"
};
};
OMBCC '..';
};
set ModuleList [OMBLIST CONFIGURATIONS];
foreach ModuleName $ModuleList {
file mkdir [concat "$RootDir$ProjectName\\$ModuleName"]
set outputFileName [string map {\\ /} [concat "$RootDir$ProjectName\\$ModuleName\\ValidationConfiguration.txt"]]
set isValid [OMBVALIDATE CONFIGURATION '$ModuleName' OUTPUT VALIDATION_RESULT TO FILE '$outputFileName' WRITE ALL]
puts $chan "$ProjectName - Configurations - $ModuleName - $isValid"
}
OMBREVERT;
OMBCC '..';
};
close $chan;