License of SDK generated packages
Are there any plans to change the license for custom collectors
generated with the SDK to allow for public sharing?
Looking at other tools such a Splunk they have a very open user
community, but this line in the license really does not look like Novell
is interested in Sentinel getting much community involvment. I guess
that is good for professional services and partners with a special
license, but not so great for smaller users who might be more interested
in helping each other by sharing collectors.
Code:
"License to Create Permitted Derivative Works. Solely as provided in the documentation, Novell hereby grants You a nonexclusive and nontransferable license to use the Novell Collector Builder to create custom Collectors for Your internal use (Permitted Derivative Works). The Permitted Derivative Works may be used solely in conjunction with the Software and for no other purpose."
Does NetIQ have any plans to change this, or is there a new EULA
someplace that changes this?
cslye
cslye's Profile: http://forums.novell.com/member.php?userid=26909
View this thread: http://forums.novell.com/showthread.php?t=451346
DCorlette;2172530 Wrote:
> Cameron,
>
> It is ABSOLUTELY NetIQ's intention to foster an active plug-in
> development community around Sentinel. I think the terms-of-use that you
> found really should not apply, and the one that should apply to
> community-developed content is the Novell Developer License Agreement.
> I'll get confirmation on that and make sure we have the right one
> published into the SDK.
>
> You should know that coming Very Soon is a major change to the SDK that
> will make all of this more obvious. This will involve an external,
> public SVN repository, a new Eclipse plug-in, and a lot of re-factoring
> of the existing build processes to allow us to "overlay" the special
> internal stuff that we do (such as embedding the Sentinel EULA into our
> own plug-ins) even when building against the public SDK. We've actually
> had a "partner" repository for a while now, but access was somewhat
> restricted. We'll look into releasing some of that content into the
> public repository (unsupported, of course) in case people find it
> useful.
Thank you for the clarification. This new SDK sounds like it is as
big of an update as 6.1 to 7.0 Sentinel. This is a pretty exciting time
for Sentinel right now, and my hope is when I tell a vendor I use Novell
as my SIEM/Log manager they dont ask why I am using Netware still. For
now, I just tell them I use NetIQ.
With everything you have commented on, the API, the SDK and everything
I have been using in 7, it is a positive change.
I need to go on vacation and come back when "Very soon" is over
cslye
cslye's Profile: http://forums.novell.com/member.php?userid=26909
View this thread: http://forums.novell.com/showthread.php?t=451346
Similar Messages
-
Revision: 3652
Author: [email protected]
Date: 2008-10-15 10:18:08 -0700 (Wed, 15 Oct 2008)
Log Message:
Fix for SDK-17328 - Package description missing when they're set using Overviews_Base.xml
Fix for SDK-17185 - Allow HTML chars to be set for footer string
Fix for SDK-17259 - Exception name missing when generating asdoc with @throw tag
QA: Yes
Doc: No
Tests: checkintests
Ticket Links:
http://bugs.adobe.com/jira/browse/SDK-17328
http://bugs.adobe.com/jira/browse/SDK-17185
http://bugs.adobe.com/jira/browse/SDK-17259
Modified Paths:
flex/sdk/trunk/asdoc/templates/asdoc-util.xslt
flex/sdk/trunk/asdoc/templates/package-detail.xslt
flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/TopLevelClassesGenerator.ja vaI believe I have found my solution!
I can currently boot with my bios in ide mode- but my raid1 mirror is showing as independent drives (c and d)
I do a simple windows search for winload.exe on the C: drive and get nothing
that same search on the D: turns up winload.exe all over
When I look at I my BCD 'device partation=C:'
shouldnt this be D:?
If so is this just a simple bcdedit, reboot into the bios, change my bios from IDE mode to RAID mode, save to cmos then, theoretically boot into windows with my raid correct (showing as a singe drive C: )
Please someone correct me if I am wrong
C:\>bcdedit
Windows Boot Manager
identifier {bootmgr}
device partition=C:
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
resumeobject {8b18c20b-c12d-11db-afc2-ac36bbabc8b2}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Microsoft Windows Vista
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
resumeobject {8b18c20b-c12d-11db-afc2-ac36bbabc8b2}
nx OptIn
vga No
quietboot Yes -
Where can I get a decent HTML Generator package?
I am reading Oreilly's Servlet Programming book and I'm looking for a free HTML Generator package that is simple to install and that has good documentation. Can anyone here point me out in the right direction?
it's in HtmlConverter.exe file.
i guess you get it together with jdk, if not- check on java.sun.com -
Problem in generating packaged functions!!!!!
Does anybody know how to restrict generating packaged
functions just in package script file?
Generating packaged function, they are generated
both in function script file and package script file
while I need just in package script file.I think that by default the functions are included in the application default implementation as you create them. If you also include them in a package then they will be generated twice when the implementation is generated.
If this is the case then simply delete the functions from the implementation, leaving just the package to be implemented and then everything should be ok.
Regards,
Steve -
Instant Client Package - SDK, RPM package download not working
Hi,
I am trying to download "Instant Client Package - SDK", RPM package for Linux 32 bit, version 11.2.0.1.0 from http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
However the file downloaded has zero length. I tried from two different computers. I cannot find any contact/form to report broken content on that website. Can someone help, please?
Cheers, Tomasfyi
For me, the page ...
http://www.oracle.com/technology/software/products/database/index.html
... currently says ...
"An error occurred while processing the request. Try refreshing your browser. If the problem persists contact the site administrator"
But, with the direct URL to the ZIP, which failed to download before ...
http://download.oracle.com/otn/nt/oracle10g/10201/10201_companion_win32.zip
... I was able to download it just now.
regards
Jan -
Generating package from indesign
Hi,
As we know there is an option in indesing for generating package for a file (File--->package).
Getting package is one of the part of my script i need to do for automation.
I searched for package option in javascript. I didnt get anything.
If u have any idea or solution please share with me.
Thanks and regards
ChristyincludingHiddenLayers is argument for CS4,
here is whole script. it works on my OSX 10.6 + InDesign CS3.
* export pdf and package indd
* Run for saved and validated document(s)
* choose folder to save pdf and packaged items
* pdf is contain package folder (named with document name)
* Created by mg on 2010-09-29.
(function () {
if(app.documents.length === 0){
exit();
var docObj = app.documents;//has many
//set folder distination, creat folder for each documents
dirFolder = Folder.selectDialog ( "choose folder for saving package folder" );
if(dirFolder === null){
exit(); //cancel process
else{ //dirFolder is choosen
for (var i= docObj.length - 1; i >= 0; i--) { //loop
var pdfExPreset = undefined;//app.pdfExportPresets.item("MagazineAds_1v3(Ads)");
dir = new File( dirFolder + "/" + decodeURI(docObj[i].name) + "/" );
flg_dir = new Folder (dir).create();
if ( flg_dir === true){
exportPDF ( dir, docObj[i], pdfExPreset );
createPackage ( dir, docObj[i] );
}//if
//to close document without saving use below
//docObj[i].close(SaveOptions.NO);
}//for doc
}//else
* export pdf
* @param {Object} dir Folder to Export
* @param {Document} doc Document
* @param {Object} pdfExPreset PDF Export Preset
function exportPDF( dir, doc, pdfExPreset ){
var pdfName = File ( dir + "/" + doc.name.replace(/(\.indd$|\$)/,".pdf") );
var showingOptions = false;
var pdfExportPreset = pdfExPreset;
var withGrids = false
var versionComments = "";
var forceSave = false;
doc.exportFile (
ExportFormat.PDF_TYPE,
pdfName,
showingOptions,
pdfExportPreset,
withGrids,
versionComments,
forceSave
* create package
* @param {Object} dir Folder to Export
* @param {Document} doc Document
function createPackage( dir, doc ){
var to = dir;
var copyingFonts = true;
var copyingLinkedGraphics = true;
var copyingProfiles = true;
var updatingGraphics = true;
//var includingHiddenLayers = false;
var ignorePreflightErrors = true;
var creatingReport = true;
var versionComments = "";
var forceSave = false;
app.activeDocument.packageForPrint (
to,
copyingFonts,
copyingLinkedGraphics,
copyingProfiles,
updatingGraphics,
//includingHiddenLayers,
ignorePreflightErrors,
creatingReport,
versionComments,
forceSave
mg -
Question about the generated package of an RMI stub class.
Does anyone know why rmic tool generated stubs are in the same package as the class that implements the remote interface? For example, say I have an interface, MyRemoteInterface, in the foo.bar package, and an implementing class, MyRemoteImpl, in the baz package. When baz.MyRemoteImpl is compiled by rmic, a stub, MyRemoteImpl_Stub, is generated in the baz package.
Now I would have thought that MyRemoteImpl_Stub would have been generated in the foo.bar package, as the stub is to be used on the client to handle calls at the interface level. In other words, the baz package really only makes sense on the server. This is in fact how stubs are generated for CORBA using the -iiop flag to rmic.
Is there at least a way to specify the generated package?if u are running rmic on a class called com.yourmi.MyClass the stub will be generated with
exactly the same package.
the only thing that u can change is the location of the stub (for example, in another directory)
but also in that other directory you will find com\yourmi\MyClass_Stub
regards
marco -
Is there an Acrobat SDK support package to purchase?
Too many issues while using Acrobat SDK, I wonder know if there is an Acrobat SDK support package to purchase.
Thanks.
Have a good day.Karl:
I started using such service back when Acrobat SDK development seemed like an intractable problem, and I really did not have the time to go through the learning curve. At the time it was called Rent-A-Coder and it was quite good.
They had their grading system, and I often worked with coders who were in the top-10 or top-20 (out of 300,000 coders).
You could search for "Acrobat SDK" or whatever other skill. They were acquired by Freelancer and I am afraid the quality of the service is waaaay down.
Regards,
-Ramon
ps: I also have -somewhere- a list of higher-end, professional programmers, specific to PDF. It camed from PlanetPDF or a similar site. In any event, after I am about to finish my first complete plugin (the copy half of a copy+paste facility) plus an AcroForms Stamper/Filler on Linux, I feel confident that I will have no need for hired guns. I can roll my own. :-) -
Error in PL/SQL generated package
Hello,
With the help of ODM (version 10,2,0,3,1 -Build 479) I created a SVM classification model, which works very fine.
After that, I generated the PL/SQL package, which returns an ORA-06512 in the call into DBMS_DATA_MINING.CREATE_MODEL.
I tried to rebuild the model in the ODM and all worked well.
I am kind of stuck here and don't know what to do next.
Thanks,
IgorHi,
hope you had a nice vacation.
As for the code I have a feeling I try to fill a varchar2 with text, larger than declared length. I created a standard PL/SQL package as defined in the tutorial and the error remained. I wonder how come that with the use of odminer the building process is successful while the use of PL/SQL package returns errors?
Thanks,
Igor
CREATE VIEW mining_data_build_v AS
SELECT
a.CUST_ID,
a.CUST_GENDER,
2003-a.CUST_YEAR_OF_BIRTH AGE,
a.CUST_MARITAL_STATUS,
c.COUNTRY_NAME,
a.CUST_INCOME_LEVEL,
b.EDUCATION,
b.OCCUPATION,
b.HOUSEHOLD_SIZE,
b.YRS_RESIDENCE,
b.AFFINITY_CARD,
b.BULK_PACK_DISKETTES,
b.FLAT_PANEL_MONITOR,
b.HOME_THEATER_PACKAGE,
b.BOOKKEEPING_APPLICATION,
b.PRINTER_SUPPLIES,
b.Y_BOX_GAMES,
b.OS_DOC_SET_KANJI
FROM
sh.customers a,
sh.supplementary_demographics b,
sh.countries c
WHERE
a.CUST_ID = b.CUST_ID
AND a.country_id = c.country_id
AND a.cust_id between 101501 and 103000;
using the package
CREATE PACKAGE "DATAMININGACTIVITY9" AUTHID DEFINER AS
PROCEDURE "MINING_DATA_BUI666498540_BA"(case_table IN VARCHAR2 DEFAULT '"DMUSER"."MINING_DATA_BUILD_V"',
additional_table_1 IN VARCHAR2 DEFAULT NULL,
model_name IN VARCHAR2 DEFAULT 'MINING_DATA_B80870_SV',
confusion_matrix_name IN VARCHAR2 DEFAULT '"DM4J$T504449054041_M"',
lift_result_name IN VARCHAR2 DEFAULT '"DM4J$T504449083327_L"',
roc_result_name IN VARCHAR2 DEFAULT '"DM4J$T504449092305_R"',
test_metric_name IN VARCHAR2 DEFAULT '"DM4J$MINING_D51278_TM"',
drop_output IN BOOLEAN DEFAULT FALSE);
END;
CREATE PACKAGE BODY "DATAMININGACTIVITY9" AS
c_long_sql_statement_length CONSTANT INTEGER := 32767;
SUBTYPE SQL_STATEMENT_TYPE IS VARCHAR2(32767);
SUBTYPE LONG_SQL_STATEMENT_TYPE IS DBMS_SQL.VARCHAR2A;
TYPE TABLE_ARRAY is TABLE OF VARCHAR2(62);
TYPE LSTMT_REC_TYPE IS RECORD (
lstmt dbms_sql.VARCHAR2A,
lb BINARY_INTEGER DEFAULT 1,
ub BINARY_INTEGER DEFAULT 0);
TYPE LSTMT_REC_TYPE_ARRAY is TABLE OF LSTMT_REC_TYPE;
TYPE QUERY_ARRAY is TABLE OF SQL_STATEMENT_TYPE;
TYPE TARGET_VALUES_LIST IS TABLE OF VARCHAR2(32);
TYPE VALUE_COUNT_LIST IS TABLE OF NUMBER;
PROCEDURE dump_varchar2a(vc2a dbms_sql.VARCHAR2A) IS
v_str varchar2(32767);
BEGIN
DBMS_OUTPUT.PUT_LINE('dump_varchar2a:');
FOR i IN 1..vc2a.COUNT LOOP
v_str := vc2a(i);
DBMS_OUTPUT.PUT_LINE(v_str);
END LOOP;
END;
PROCEDURE ls_append(
r_lstmt IN OUT NOCOPY LSTMT_REC_TYPE,
p_txt VARCHAR2)
IS
BEGIN
r_lstmt.ub := r_lstmt.ub + 1;
r_lstmt.lstmt(r_lstmt.ub) := p_txt;
END ls_append;
PROCEDURE ls_append(
r_lstmt IN OUT NOCOPY LSTMT_REC_TYPE,
p_txt LSTMT_REC_TYPE) IS
BEGIN
FOR i IN p_txt.lb..p_txt.ub LOOP
r_lstmt.ub := r_lstmt.ub + 1;
r_lstmt.lstmt(r_lstmt.ub) := p_txt.lstmt(i);
END LOOP;
END ls_append;
FUNCTION query_valid(
p_query VARCHAR2) RETURN BOOLEAN
IS
v_is_valid BOOLEAN;
BEGIN
BEGIN
EXECUTE IMMEDIATE p_query;
v_is_valid := TRUE;
EXCEPTION WHEN OTHERS THEN
v_is_valid := FALSE;
END;
RETURN v_is_valid;
END query_valid;
FUNCTION table_exist(
p_table_name VARCHAR2) RETURN BOOLEAN IS
BEGIN
RETURN query_valid('SELECT * FROM ' || dbms_assert.simple_sql_name(p_table_name));
END table_exist;
FUNCTION model_exist(
p_model_name VARCHAR2) RETURN BOOLEAN
IS
v_model_cnt NUMBER;
v_model_exists BOOLEAN := FALSE;
BEGIN
SELECT COUNT(*) INTO v_model_cnt FROM DM_USER_MODELS WHERE NAME = UPPER(p_model_name);
IF v_model_cnt > 0 THEN
v_model_exists := TRUE;
END IF;
--DBMS_OUTPUT.PUT_LINE('model exist: '||v_model_exists);
RETURN v_model_exists;
EXCEPTION WHEN OTHERS THEN
RETURN FALSE;
END model_exist;
PROCEDURE drop_table(
p_table_name VARCHAR2)
IS
v_stmt SQL_STATEMENT_TYPE;
BEGIN
v_stmt := 'DROP TABLE '||dbms_assert.simple_sql_name(p_table_name)||' PURGE';
EXECUTE IMMEDIATE v_stmt;
EXCEPTION WHEN OTHERS THEN
NULL;
--DBMS_OUTPUT.PUT_LINE('Failed drop_table: '||p_table_name);
END drop_table;
PROCEDURE drop_view(
p_view_name VARCHAR2)
IS
v_stmt SQL_STATEMENT_TYPE;
BEGIN
v_stmt := 'DROP VIEW '||dbms_assert.simple_sql_name(p_view_name);
EXECUTE IMMEDIATE v_stmt;
EXCEPTION WHEN OTHERS THEN
NULL;
--DBMS_OUTPUT.PUT_LINE('Failed drop_view: '||p_view_name);
END drop_view;
PROCEDURE drop_model(
p_model_name VARCHAR2)
IS
BEGIN
DBMS_DATA_MINING.DROP_MODEL(p_model_name);
EXCEPTION WHEN OTHERS THEN
NULL;
--DBMS_OUTPUT.PUT_LINE('Failed drop_model: '||p_model_name);
END drop_model;
FUNCTION create_new_temp_table_name(prefix IN VARCHAR2, len IN NUMBER)
RETURN VARCHAR2 IS
v_table_name VARCHAR2(30);
v_seed NUMBER;
BEGIN
dbms_random.seed(SYS_GUID());
v_table_name := 'DM$T' || SUBSTR(prefix, 0, 4) || dbms_random.string(NULL, len-8);
--DBMS_OUTPUT.PUT_LINE('create_new_temp_table_name: '||v_table_name);
RETURN v_table_name;
END create_new_temp_table_name;
FUNCTION create_new_temp_table_name(prefix IN VARCHAR2)
RETURN VARCHAR2 IS
BEGIN
RETURN create_new_temp_table_name(prefix, 30);
END create_new_temp_table_name;
FUNCTION ADD_TEMP_TABLE(tempTables IN OUT NOCOPY TABLE_ARRAY, temp_table IN VARCHAR2) RETURN VARCHAR2 IS
BEGIN
tempTables.EXTEND;
tempTables(tempTables.COUNT) := temp_table;
return temp_table;
END;
PROCEDURE DROP_TEMP_TABLES(tempTables IN OUT NOCOPY TABLE_ARRAY) IS
v_temp VARCHAR2(30);
BEGIN
FOR i IN 1..tempTables.COUNT LOOP
v_temp := tempTables(i);
drop_table(v_temp);
drop_view(v_temp);
tempTables.DELETE(i);
END LOOP;
END;
PROCEDURE CHECK_RESULTS(drop_output IN BOOLEAN,
result_name IN VARCHAR2) IS
BEGIN
-- drop all results if drop = true, otherwise make sure all results don't exist already (raise exception)
IF result_name IS NOT NULL THEN
IF drop_output THEN
drop_table(result_name);
drop_view(result_name);
ELSIF (table_exist(result_name)) THEN
RAISE_APPLICATION_ERROR(-20000, 'Result table exists: '||result_name);
END IF;
END IF;
END;
PROCEDURE CHECK_MODEL(drop_output IN BOOLEAN,
model_name IN VARCHAR2) IS
BEGIN
-- drop all results if drop = true, otherwise make sure all results don't exist already (raise exception)
IF model_name IS NOT NULL THEN
IF drop_output THEN
drop_model(model_name);
ELSIF (model_exist(model_name)) THEN
RAISE_APPLICATION_ERROR(-20001, 'Model exists: '||model_name);
END IF;
END IF;
END;
PROCEDURE create_table_from_query(query IN OUT NOCOPY LSTMT_REC_TYPE)
IS
v_cursor NUMBER;
v_feedback INTEGER;
BEGIN
v_cursor := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(
c => v_cursor,
statement => query.lstmt,
lb => query.lb,
ub => query.ub,
lfflg => FALSE,
language_flag => dbms_sql.native);
v_feedback := DBMS_SQL.EXECUTE(v_cursor);
DBMS_SQL.CLOSE_CURSOR(v_cursor);
EXCEPTION WHEN OTHERS THEN
IF DBMS_SQL.IS_OPEN(v_cursor) THEN
DBMS_SQL.CLOSE_CURSOR(v_cursor);
END IF;
RAISE;
END;
FUNCTION get_row_count(tableName IN VARCHAR2)
RETURN INTEGER IS
v_stmt VARCHAR(100);
qcount INTEGER := 0;
BEGIN
v_stmt := 'SELECT COUNT(*) FROM '|| tableName;
EXECUTE IMMEDIATE v_stmt INTO qcount;
RETURN qcount;
END get_row_count;
PROCEDURE SET_EQUAL_DISTRIBUTION (
counts IN OUT VALUE_COUNT_LIST )
IS
v_minvalue NUMBER := 0;
BEGIN
FOR i IN counts.FIRST..counts.LAST
LOOP
IF ( i = counts.FIRST )
THEN
v_minvalue := counts(i);
ELSIF ( counts(i) > 0 AND v_minvalue > counts(i) )
THEN
v_minvalue := counts(i);
END IF;
END LOOP;
FOR i IN counts.FIRST..counts.LAST
LOOP
counts(i) := v_minvalue;
END LOOP;
END SET_EQUAL_DISTRIBUTION;
PROCEDURE GET_STRATIFIED_DISTRIBUTION (
table_name VARCHAR2,
attribute_name VARCHAR2,
percentage NUMBER,
attr_values IN OUT NOCOPY TARGET_VALUES_LIST,
counts IN OUT NOCOPY VALUE_COUNT_LIST,
counts_sampled IN OUT NOCOPY VALUE_COUNT_LIST )
IS
v_tmp_stmt VARCHAR2(4000);
BEGIN
v_tmp_stmt :=
'SELECT /*+ noparallel(t)*/ ' || attribute_name ||
', count(*), ROUND ( ( count(*) * ' || percentage || ') / 100.0 ) FROM '|| table_name ||
' WHERE ' || attribute_name ||' IS NOT NULL GROUP BY ' || attribute_name;
EXECUTE IMMEDIATE v_tmp_stmt
BULK COLLECT INTO attr_values, counts, counts_sampled;
END GET_STRATIFIED_DISTRIBUTION;
FUNCTION GENERATE_STRATIFIED_SQL (
v_2d_temp_view VARCHAR2,
src_table_name VARCHAR2,
attr_names TARGET_VALUES_LIST,
attribute_name VARCHAR2,
percentage NUMBER,
op VARCHAR2,
equal_distribution IN BOOLEAN DEFAULT FALSE) RETURN LSTMT_REC_TYPE
IS
v_tmp_lstmt LSTMT_REC_TYPE;
attr_values_res TARGET_VALUES_LIST;
counts_res VALUE_COUNT_LIST;
counts_sampled_res VALUE_COUNT_LIST;
tmp_str VARCHAR2(4000);
sample_count PLS_INTEGER;
BEGIN
GET_STRATIFIED_DISTRIBUTION(src_table_name, attribute_name, percentage, attr_values_res, counts_res, counts_sampled_res);
IF ( equal_distribution = TRUE )
THEN
SET_EQUAL_DISTRIBUTION(counts_sampled_res);
END IF;
v_tmp_lstmt.ub := 0; -- initialize
ls_append(v_tmp_lstmt, 'CREATE TABLE ');
ls_append(v_tmp_lstmt, v_2d_temp_view);
ls_append(v_tmp_lstmt, ' AS ');
ls_append(v_tmp_lstmt, '( SELECT ');
FOR i IN attr_names.FIRST..attr_names.LAST
LOOP
IF ( i != attr_names.FIRST )
THEN
ls_append(v_tmp_lstmt,',');
END IF;
ls_append(v_tmp_lstmt, attr_names(i));
END LOOP;
ls_append(v_tmp_lstmt, ' FROM (SELECT /*+ no_merge */ t.*, ROWNUM RNUM FROM ' || src_table_name || ' t) WHERE ' );
FOR i IN attr_values_res.FIRST..attr_values_res.LAST
LOOP
IF ( i != attr_values_res.FIRST )
THEN
tmp_str := ' OR ';
END IF;
IF ( counts_res(i) <= 2 ) THEN
sample_count := counts_res(i);
ELSE
sample_count := counts_sampled_res(i);
END IF;
tmp_str := tmp_str ||
'( ' || attribute_name || ' = ''' || attr_values_res(i) || '''' ||
' AND ORA_HASH(RNUM,(' || counts_res(i) || ' -1),12345) ' || op || sample_count || ') ';
ls_append(v_tmp_lstmt, tmp_str );
END LOOP;
ls_append(v_tmp_lstmt, ') ');
return v_tmp_lstmt;
END GENERATE_STRATIFIED_SQL;
PROCEDURE "MINING_DATA_BUI666498540_BA"(case_table IN VARCHAR2 DEFAULT '"DMUSER"."MINING_DATA_BUILD_V"',
additional_table_1 IN VARCHAR2 DEFAULT NULL,
model_name IN VARCHAR2 DEFAULT 'MINING_DATA_B80870_SV',
confusion_matrix_name IN VARCHAR2 DEFAULT '"DM4J$T504449054041_M"',
lift_result_name IN VARCHAR2 DEFAULT '"DM4J$T504449083327_L"',
roc_result_name IN VARCHAR2 DEFAULT '"DM4J$T504449092305_R"',
test_metric_name IN VARCHAR2 DEFAULT '"DM4J$MINING_D51278_TM"',
drop_output IN BOOLEAN DEFAULT FALSE)
IS
additional_data TABLE_ARRAY := TABLE_ARRAY(
additional_table_1
v_tempTables TABLE_ARRAY := TABLE_ARRAY();
v_2d_view VARCHAR2(30);
v_2d_view_build VARCHAR2(30);
v_2d_view_test VARCHAR2(30);
v_2d_temp_view VARCHAR2(30);
v_txn_views TABLE_ARRAY := TABLE_ARRAY();
v_txn_views_build TABLE_ARRAY := TABLE_ARRAY();
v_txn_views_test TABLE_ARRAY := TABLE_ARRAY();
v_txn_temp_views TABLE_ARRAY := TABLE_ARRAY();
v_case_data SQL_STATEMENT_TYPE := case_table;
v_case_id VARCHAR2(30) := 'DMR$CASE_ID';
v_tmp_lstmt LSTMT_REC_TYPE;
v_target_value VARCHAR2(4000) := '1';
v_num_quantiles NUMBER := 10;
v_build_data VARCHAR2(30);
v_test_data VARCHAR2(30);
v_prior VARCHAR2(30);
v_build_setting VARCHAR2(30);
v_apply_result VARCHAR2(30);
v_build_cm VARCHAR2(30);
v_test_cm VARCHAR2(30);
v_accuracy NUMBER;
v_area_under_curve NUMBER;
v_avg_accuracy NUMBER;
v_predictive_confidence NUMBER;
v_confusion_matrix VARCHAR2(30);
v_gen_caseId BOOLEAN := FALSE;
v_2d_txt_view VARCHAR2(30);
v_content_index VARCHAR2(30);
v_content_index_pref VARCHAR2(30);
v_category_temp_table VARCHAR2(30);
v_term_definitions VARCHAR2(30);
v_term_final_table VARCHAR2(30);
v_term_final_table_index VARCHAR2(30);
v_term_final_table_test VARCHAR2(30);
pragma autonomous_transaction;
BEGIN
CHECK_MODEL(drop_output, model_name);
CHECK_RESULTS(drop_output, test_metric_name);
CHECK_RESULTS(drop_output, confusion_matrix_name);
CHECK_RESULTS(drop_output, lift_result_name);
CHECK_RESULTS(drop_output, roc_result_name);
IF (v_gen_caseId) THEN
v_case_data := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
EXECUTE IMMEDIATE 'CREATE TABLE '||v_case_data||' as SELECT rownum as DMR$CASE_ID, t.* FROM ('||case_table||') t ';
EXECUTE IMMEDIATE 'ALTER TABLE '||v_case_data||' add constraint '||create_new_temp_table_name('PK')||' primary key (DMR$CASE_ID)';
END IF;
----- Start: Input Data Preparation -----
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, 'CREATE VIEW ');
ls_append(v_tmp_lstmt, v_2d_temp_view);
ls_append(v_tmp_lstmt, ' AS ');
ls_append(v_tmp_lstmt, ' ( ');
ls_append(v_tmp_lstmt, 'SELECT "CASE_TABLE"."CUST_ID" as "DMR$CASE_ID", TO_CHAR( "CASE_TABLE"."AFFINITY_CARD") AS "AFFINITY_CARD",
"CASE_TABLE"."AGE" AS "AGE",
TO_CHAR( "CASE_TABLE"."BOOKKEEPING_APPLICATION") AS "BOOKKEEPING_APPLICATION",
TO_CHAR( "CASE_TABLE"."BULK_PACK_DISKETTES") AS "BULK_PACK_DISKETTES",
"CASE_TABLE"."COUNTRY_NAME" AS "COUNTRY_NAME",
"CASE_TABLE"."CUST_GENDER" AS "CUST_GENDER",
"CASE_TABLE"."CUST_INCOME_LEVEL" AS "CUST_INCOME_LEVEL",
"CASE_TABLE"."CUST_MARITAL_STATUS" AS "CUST_MARITAL_STATUS",
"CASE_TABLE"."EDUCATION" AS "EDUCATION",
TO_CHAR( "CASE_TABLE"."FLAT_PANEL_MONITOR") AS "FLAT_PANEL_MONITOR",
TO_CHAR( "CASE_TABLE"."HOME_THEATER_PACKAGE") AS "HOME_THEATER_PACKAGE",
"CASE_TABLE"."HOUSEHOLD_SIZE" AS "HOUSEHOLD_SIZE",
"CASE_TABLE"."OCCUPATION" AS "OCCUPATION",
TO_CHAR( "CASE_TABLE"."OS_DOC_SET_KANJI") AS "OS_DOC_SET_KANJI",
TO_CHAR( "CASE_TABLE"."Y_BOX_GAMES") AS "Y_BOX_GAMES",
"CASE_TABLE"."YRS_RESIDENCE" AS "YRS_RESIDENCE" FROM (' || v_case_data || ') CASE_TABLE ');
ls_append(v_tmp_lstmt, ' ) ');
create_table_from_query(v_tmp_lstmt);
v_2d_view := v_2d_temp_view;
----- End: Input Data Preparation -----
----- Start: Outlier Treatment Transformation -----
v_tmp_lstmt.ub := 0; -- initialize
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, 'CREATE VIEW ');
ls_append(v_tmp_lstmt, v_2d_temp_view);
ls_append(v_tmp_lstmt, ' AS ');
ls_append(v_tmp_lstmt, ' ( ');
ls_append(v_tmp_lstmt, 'SELECT
"AFFINITY_CARD",
( CASE WHEN "AGE" < -1.3 THEN -1.3
WHEN "AGE" >= -1.3 AND "AGE" <= 79.77 THEN "AGE"
WHEN "AGE" > 79.77 THEN 79.77
end) "AGE"
"BOOKKEEPING_APPLICATION",
"BULK_PACK_DISKETTES",
"COUNTRY_NAME",
"CUST_GENDER",
"CUST_INCOME_LEVEL",
"CUST_MARITAL_STATUS",
"DMR$CASE_ID",
"EDUCATION",
"FLAT_PANEL_MONITOR",
"HOME_THEATER_PACKAGE",
"HOUSEHOLD_SIZE",
"OCCUPATION",
"OS_DOC_SET_KANJI",
"Y_BOX_GAMES",
( CASE WHEN "YRS_RESIDENCE" < -1.7 THEN -1.7
WHEN "YRS_RESIDENCE" >= -1.7 AND "YRS_RESIDENCE" <= 10 THEN "YRS_RESIDENCE"
WHEN "YRS_RESIDENCE" > 10 THEN 10
end) "YRS_RESIDENCE"
FROM ');
ls_append(v_tmp_lstmt, v_2d_view);
ls_append(v_tmp_lstmt, ' ) ');
create_table_from_query(v_tmp_lstmt);
v_2d_view := v_2d_temp_view;
----- End: Outlier Treatment Transformation -----
----- Start: Missing Values Transformation -----
v_tmp_lstmt.ub := 0; -- initialize
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, 'CREATE VIEW ');
ls_append(v_tmp_lstmt, v_2d_temp_view);
ls_append(v_tmp_lstmt, ' AS ');
ls_append(v_tmp_lstmt, ' ( ');
ls_append(v_tmp_lstmt, 'SELECT
DECODE ( "AGE" , NULL,
39.23831 , "AGE" ) "AGE" ,
DECODE ( "YRS_RESIDENCE" , NULL,
4.128 , "YRS_RESIDENCE" ) "YRS_RESIDENCE" ,
DECODE ( "BOOKKEEPING_APPLICATION" , NULL,
''1'' , "BOOKKEEPING_APPLICATION" ) "BOOKKEEPING_APPLICATION" ,
DECODE ( "BULK_PACK_DISKETTES" , NULL,
''1'' , "BULK_PACK_DISKETTES" ) "BULK_PACK_DISKETTES" ,
DECODE ( "COUNTRY_NAME" , NULL,
''United States of America'' , "COUNTRY_NAME" ) "COUNTRY_NAME" ,
DECODE ( "CUST_GENDER" , NULL,
''M'' , "CUST_GENDER" ) "CUST_GENDER" ,
DECODE ( "CUST_INCOME_LEVEL" , NULL,
''J: 190,000 - 249,999'' , "CUST_INCOME_LEVEL" ) "CUST_INCOME_LEVEL" ,
DECODE ( "CUST_MARITAL_STATUS" , NULL,
''Married'' , "CUST_MARITAL_STATUS" ) "CUST_MARITAL_STATUS" ,
DECODE ( "EDUCATION" , NULL,
''HS-grad'' , "EDUCATION" ) "EDUCATION" ,
DECODE ( "FLAT_PANEL_MONITOR" , NULL,
''1'' , "FLAT_PANEL_MONITOR" ) "FLAT_PANEL_MONITOR" ,
DECODE ( "HOME_THEATER_PACKAGE" , NULL,
''1'' , "HOME_THEATER_PACKAGE" ) "HOME_THEATER_PACKAGE" ,
DECODE ( "HOUSEHOLD_SIZE" , NULL,
''3'' , "HOUSEHOLD_SIZE" ) "HOUSEHOLD_SIZE" ,
DECODE ( "OCCUPATION" , NULL,
''Exec.'' , "OCCUPATION" ) "OCCUPATION" ,
DECODE ( "OS_DOC_SET_KANJI" , NULL,
''0'' , "OS_DOC_SET_KANJI" ) "OS_DOC_SET_KANJI" ,
DECODE ( "Y_BOX_GAMES" , NULL,
''0'' , "Y_BOX_GAMES" ) "Y_BOX_GAMES" ,
"AFFINITY_CARD",
"DMR$CASE_ID"
FROM ');
ls_append(v_tmp_lstmt, v_2d_view);
ls_append(v_tmp_lstmt, ' ) ');
create_table_from_query(v_tmp_lstmt);
v_2d_view := v_2d_temp_view;
----- End: Missing Values Transformation -----
----- Start: Normalize Transformation -----
v_tmp_lstmt.ub := 0; -- initialize
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, 'CREATE VIEW ');
ls_append(v_tmp_lstmt, v_2d_temp_view);
ls_append(v_tmp_lstmt, ' AS ');
ls_append(v_tmp_lstmt, ' ( ');
ls_append(v_tmp_lstmt, 'SELECT
"BOOKKEEPING_APPLICATION",
"BULK_PACK_DISKETTES",
"COUNTRY_NAME",
"CUST_GENDER",
"CUST_INCOME_LEVEL",
"CUST_MARITAL_STATUS",
"EDUCATION",
"FLAT_PANEL_MONITOR",
"HOME_THEATER_PACKAGE",
"HOUSEHOLD_SIZE",
"OCCUPATION",
"OS_DOC_SET_KANJI",
"Y_BOX_GAMES",
"AFFINITY_CARD",
"DMR$CASE_ID",
LEAST(1, GREATEST(0, (ROUND(("AGE" - 17.0) / (79.77 - 17.0),15) * (1.0 - 0.0) + 0.0))) "AGE",
LEAST(1, GREATEST(0, (ROUND(("YRS_RESIDENCE" - 0.0) / (10.0 - 0.0),15) * (1.0 - 0.0) + 0.0))) "YRS_RESIDENCE"
FROM ');
ls_append(v_tmp_lstmt, v_2d_view);
ls_append(v_tmp_lstmt, ' ) ');
create_table_from_query(v_tmp_lstmt);
v_2d_view := v_2d_temp_view;
----- End: Normalize Transformation -----
----- Start: Stratified Split Transformation -----
v_tmp_lstmt.ub := 0; -- initialize
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, GENERATE_STRATIFIED_SQL(v_2d_temp_view, v_2d_view, TARGET_VALUES_LIST('"BOOKKEEPING_APPLICATION"',
'"BULK_PACK_DISKETTES"',
'"COUNTRY_NAME"',
'"CUST_GENDER"',
'"CUST_INCOME_LEVEL"',
'"CUST_MARITAL_STATUS"',
'"EDUCATION"',
'"FLAT_PANEL_MONITOR"',
'"HOME_THEATER_PACKAGE"',
'"HOUSEHOLD_SIZE"',
'"OCCUPATION"',
'"OS_DOC_SET_KANJI"',
'"Y_BOX_GAMES"',
'"AFFINITY_CARD"',
'"DMR$CASE_ID"',
'"AGE"',
'"YRS_RESIDENCE"'), '"AFFINITY_CARD"', 60, ' < ' ));
create_table_from_query(v_tmp_lstmt);
v_2d_view_build := v_2d_temp_view;
v_tmp_lstmt.ub := 0; -- initialize
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, GENERATE_STRATIFIED_SQL(v_2d_temp_view, v_2d_view, TARGET_VALUES_LIST('"BOOKKEEPING_APPLICATION"',
'"BULK_PACK_DISKETTES"',
'"COUNTRY_NAME"',
'"CUST_GENDER"',
'"CUST_INCOME_LEVEL"',
'"CUST_MARITAL_STATUS"',
'"EDUCATION"',
'"FLAT_PANEL_MONITOR"',
'"HOME_THEATER_PACKAGE"',
'"HOUSEHOLD_SIZE"',
'"OCCUPATION"',
'"OS_DOC_SET_KANJI"',
'"Y_BOX_GAMES"',
'"AFFINITY_CARD"',
'"DMR$CASE_ID"',
'"AGE"',
'"YRS_RESIDENCE"'), '"AFFINITY_CARD"', 60, ' >= ' ));
create_table_from_query(v_tmp_lstmt);
v_2d_view_test := v_2d_temp_view;
----- End: Stratified Split Transformation -----
----- Start: Mining Data Preparation -----
v_tmp_lstmt.ub := 0; -- initialize
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, 'CREATE VIEW ');
ls_append(v_tmp_lstmt, v_2d_temp_view);
ls_append(v_tmp_lstmt, ' AS ');
ls_append(v_tmp_lstmt, ' ( ');
ls_append(v_tmp_lstmt,
'SELECT caseTable."AFFINITY_CARD"
, caseTable."AGE"
, caseTable."BOOKKEEPING_APPLICATION"
, caseTable."BULK_PACK_DISKETTES"
, caseTable."COUNTRY_NAME"
, caseTable."CUST_GENDER"
, caseTable."CUST_INCOME_LEVEL"
, caseTable."CUST_MARITAL_STATUS"
, caseTable."DMR$CASE_ID"
, caseTable."EDUCATION"
, caseTable."FLAT_PANEL_MONITOR"
, caseTable."HOME_THEATER_PACKAGE"
, caseTable."HOUSEHOLD_SIZE"
, caseTable."OCCUPATION"
, caseTable."OS_DOC_SET_KANJI"
, caseTable."Y_BOX_GAMES"
, caseTable."YRS_RESIDENCE"
FROM ('); ls_append(v_tmp_lstmt, v_2d_view_build); ls_append(v_tmp_lstmt, ') caseTable
ls_append(v_tmp_lstmt, ' ) ');
create_table_from_query(v_tmp_lstmt);
v_2d_view_build := v_2d_temp_view;
v_tmp_lstmt.ub := 0; -- initialize
v_2d_temp_view := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ls_append(v_tmp_lstmt, 'CREATE VIEW ');
ls_append(v_tmp_lstmt, v_2d_temp_view);
ls_append(v_tmp_lstmt, ' AS ');
ls_append(v_tmp_lstmt, ' ( ');
ls_append(v_tmp_lstmt,
'SELECT caseTable."AFFINITY_CARD"
, caseTable."AGE"
, caseTable."BOOKKEEPING_APPLICATION"
, caseTable."BULK_PACK_DISKETTES"
, caseTable."COUNTRY_NAME"
, caseTable."CUST_GENDER"
, caseTable."CUST_INCOME_LEVEL"
, caseTable."CUST_MARITAL_STATUS"
, caseTable."DMR$CASE_ID"
, caseTable."EDUCATION"
, caseTable."FLAT_PANEL_MONITOR"
, caseTable."HOME_THEATER_PACKAGE"
, caseTable."HOUSEHOLD_SIZE"
, caseTable."OCCUPATION"
, caseTable."OS_DOC_SET_KANJI"
, caseTable."Y_BOX_GAMES"
, caseTable."YRS_RESIDENCE"
FROM ('); ls_append(v_tmp_lstmt, v_2d_view_test); ls_append(v_tmp_lstmt, ') caseTable
ls_append(v_tmp_lstmt, ' ) ');
create_table_from_query(v_tmp_lstmt);
v_2d_view_test := v_2d_temp_view;
v_build_data := v_2d_view_build;
v_test_data := v_2d_view_test;
----- End: Mining Data Preparation -----
v_prior := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
EXECUTE IMMEDIATE 'CREATE TABLE ' || v_prior || ' (TARGET_VALUE VARCHAR2(4000), PRIOR_PROBABILITY NUMBER)';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_prior || ' VALUES (''0'', 0.25333333333333335)';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_prior || ' VALUES (''1'', 0.7466666666666666)';
COMMIT;
v_build_setting := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
EXECUTE IMMEDIATE 'CREATE TABLE ' || v_build_setting || ' (setting_name VARCHAR2(30), setting_value VARCHAR2(128))';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_build_setting || ' VALUES (''JDMS_TARGET_NAME'', ''"AFFINITY_CARD"'')';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_build_setting || ' VALUES (''SVMS_ACTIVE_LEARNING'', ''SVMS_AL_ENABLE'')';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_build_setting || ' VALUES (''JDMS_FUNCTION_TYPE'', ''CLASSIFICATION'')';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_build_setting || ' VALUES (''ALGO_NAME'', ''ALGO_SUPPORT_VECTOR_MACHINES'')';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_build_setting || ' VALUES (''SVMS_CONV_TOLERANCE'', ''0.0010'')';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_build_setting || ' VALUES (''CLAS_PRIORS_TABLE_NAME'', :priorTable)' USING v_prior;
COMMIT;
-- BUILD MODEL
DBMS_DATA_MINING.CREATE_MODEL(
model_name => model_name,
mining_function => dbms_data_mining.classification,
data_table_name => v_build_data,
case_id_column_name => v_case_id,
target_column_name => 'AFFINITY_CARD',
settings_table_name => v_build_setting);
v_test_cm := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
EXECUTE IMMEDIATE 'CREATE TABLE ' || v_test_cm || ' (actual_target_value VARCHAR2(4000), predicted_target_value VARCHAR2(4000), cost NUMBER)';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_test_cm || ' VALUES (''0'', ''0'', 0.0)';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_test_cm || ' VALUES (''0'', ''1'', 1.0)';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_test_cm || ' VALUES (''1'', ''0'', 1.0)';
EXECUTE IMMEDIATE 'INSERT INTO ' || v_test_cm || ' VALUES (''1'', ''1'', 0.0)';
COMMIT;
-- TEST MODEL
IF (test_metric_name IS NOT NULL) THEN
-- CREATE APPLY RESULT FOR TEST
v_apply_result := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
DBMS_DATA_MINING.APPLY(
model_name => model_name,
data_table_name => v_test_data,
case_id_column_name => v_case_id,
result_table_name => v_apply_result);
EXECUTE IMMEDIATE 'CREATE TABLE ' || test_metric_name || ' (METRIC_NAME VARCHAR2(30), METRIC_VARCHAR_VALUE VARCHAR2(31), METRIC_NUM_VALUE NUMBER)';
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''MODEL_NAME'', :model)' USING model_name;
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''TEST_DATA_NAME'', :test_data)' USING v_test_data;
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''MINING_FUNCTION'', ''CLASSIFICATION'')';
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''TARGET_ATTRIBUTE'', :target)' USING 'AFFINITY_CARD';
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''POSITIVE_TARGET_VALUE'', :target_value)' USING v_target_value;
COMMIT;
IF confusion_matrix_name IS NULL THEN
v_confusion_matrix := ADD_TEMP_TABLE(v_tempTables, create_new_temp_table_name('DM$T'));
ELSE
v_confusion_matrix := confusion_matrix_name;
END IF;
DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
accuracy => v_accuracy,
apply_result_table_name => v_apply_result,
target_table_name => v_test_data,
case_id_column_name => v_case_id,
target_column_name => 'AFFINITY_CARD',
confusion_matrix_table_name => v_confusion_matrix,
score_column_name => 'PREDICTION',
score_criterion_column_name => 'PROBABILITY',
cost_matrix_table_name => v_test_cm);
-- DBMS_OUTPUT.PUT_LINE('**** MODEL ACCURACY ****: ' || ROUND(accuracy, 4));
IF (confusion_matrix_name IS NOT NULL) THEN
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_NUM_VALUE) VALUES (''ACCURACY'', :accuracy)' USING v_accuracy;
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''CONFUSION_MATRIX_TABLE'', :confusion_matrix_name)' USING confusion_matrix_name;
COMMIT;
-- Average Accuracy
EXECUTE IMMEDIATE '
WITH
a as
(SELECT a.actual_target_value, sum(a.value) recall_total
FROM ' || confusion_matrix_name || ' a
group by a.actual_target_value)
b as
(SELECT count(distinct b.actual_target_value) num_recalls
FROM ' || confusion_matrix_name || ' b)
c as
(SELECT c.actual_target_value, value
FROM ' || confusion_matrix_name || ' c
where actual_target_value = predicted_target_value)
d as
(SELECT sum(c.value/a.recall_total) tot_accuracy
FROM a, c
where a.actual_target_value = c.actual_target_value)
SELECT d.tot_accuracy/b.num_recalls * 100 avg_accuracy
FROM b, d' INTO v_avg_accuracy;
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_NUM_VALUE) VALUES (''AVG_ACCURACY'', :avg_accuracy)' USING v_avg_accuracy;
COMMIT;
END IF;
-- Predictive Confidence
EXECUTE IMMEDIATE '
WITH
a as
(SELECT a.actual_target_value, sum(a.value) recall_total
FROM ' || v_confusion_matrix || ' a
group by a.actual_target_value)
b as
(SELECT count(distinct b.actual_target_value) num_classes
FROM ' || v_confusion_matrix || ' b)
c as
(SELECT c.actual_target_value, value
FROM ' || v_confusion_matrix || ' c
where actual_target_value = predicted_target_value)
d as
(SELECT sum(c.value/a.recall_total) tot_accuracy
FROM a, c
where a.actual_target_value = c.actual_target_value)
SELECT (1 - (1 - d.tot_accuracy/b.num_classes) / GREATEST(0.0001, ((b.num_classes-1)/b.num_classes))) * 100
FROM b, d' INTO v_predictive_confidence;
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_NUM_VALUE) VALUES (''PREDICTIVE_CONFIDENCE'', :predictive_confidence)' USING v_predictive_confidence;
COMMIT;
IF lift_result_name IS NOT NULL AND v_target_value IS NOT NULL THEN
DBMS_DATA_MINING.COMPUTE_LIFT (
apply_result_table_name => v_apply_result,
target_table_name => v_test_data,
case_id_column_name => v_case_id,
target_column_name => 'AFFINITY_CARD',
lift_table_name => lift_result_name,
positive_target_value => v_target_value,
num_quantiles => v_num_quantiles,
cost_matrix_table_name => v_test_cm);
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''LIFT_TABLE'', :lift_result_name)' USING lift_result_name;
COMMIT;
END IF;
IF roc_result_name IS NOT NULL AND v_target_value IS NOT NULL THEN
DBMS_DATA_MINING.COMPUTE_ROC (
roc_area_under_curve => v_area_under_curve,
apply_result_table_name => v_apply_result,
target_table_name => v_test_data,
case_id_column_name => v_case_id,
target_column_name => 'AFFINITY_CARD',
roc_table_name => roc_result_name,
positive_target_value => v_target_value,
score_column_name => 'PREDICTION',
score_criterion_column_name => 'PROBABILITY');
-- DBMS_OUTPUT.PUT_LINE('**** AREA UNDER ROC CURVE ****: ' || area_under_curve );
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_VARCHAR_VALUE) VALUES (''ROC_TABLE'', :roc_result_name)' USING roc_result_name;
EXECUTE IMMEDIATE 'INSERT INTO ' || test_metric_name || ' (METRIC_NAME, METRIC_NUM_VALUE) VALUES (''AREA_UNDER_CURVE'', :v_area_under_curve)' USING v_area_under_curve;
COMMIT;
END IF;
END IF;
DROP_TEMP_TABLES(v_tempTables);
EXCEPTION WHEN OTHERS THEN
DROP_TEMP_TABLES(v_tempTables);
RAISE;
END;
END;
/ -
How to use JPublisher generated package in JSP
I am finding difficulty in using JDeveloper genereted (Using JPublisher) package ( from PL?SQL packages of Oracle) using in JSP . can any body help
PrashantCan you be more specific on what you are doing and what problem you are facing.
You can refer JPublisher documentation here.
http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96658/toc.htm
JPub help with Jdeveloper
http://otn.oracle.com/jdeveloper/help/
Go to using SQL in Java Programs ->Accessing Oracle Objects and PL/SQL Packages using Java
Also you can see how JPub generated classes can be used in SQLJandJPublisherSample at following url. You can apply similar concept for JSPs.
http://otn.oracle.com/sample_code/tech/java/sqlj_jdbc/files/9i_sqlj/9i_sqlj.html
Chandar -
Having the animation issue with iOS 5 SDK generated build
I am working on a enterprise application. I upgraded the xcode 4.2 and generated the build with iOS SDK 5. I observed the strange behavior in the animation of the views. The view are moving horizontally, even though we are setting the frame vertically.
But if I run the app in debug mode, it works fine.
Can anyone please help me?The following piece of code I am using in my application,
Here pBgImageView is UIControl object.
CGRect frame =pBgImageView.frame;
NSLog(@"frame x.o = %f, y.o = %f",frame.origin.x,frame.origin.y );
frame.origin.y += (62 + 15);
NSLog(@"frame x.o = %f, y.o = %f, bg.x = %f, bg.y = %f",frame.origin.x,frame.origin.y, pBgImageView.frame.origin.x,pBgImageView.frame.origin.y );
And the logs I am getting is,
frame x.o = 15.000000, y.o = 88.000000
frame x.o = 92.000000, y.o = 92.000000, bg.x = 15.000000, bg.y = 88.000000
frame x.o = 92.000000, y.o = 92.000000 -
Mapping namespace to generated package name (clientgen)
Hello,
We have a need to map the namespace of the generated bean artifacts from clientgen to a different package name. This could be done prior to weblogic 10 with the typePackageName attribute of clientgen but this is no longer supported in weblogic 10. Is there another way to do this? Note we cannot change the namespace of the webservice wsdl we are generating the client for.
Thank you!
Julia AllenUse the <binding> child element to specify one of the following:
* For JAX-WS, one or more customization files that specify one or more of the following:
o JAX-WS and JAXB custom binding declarations. For more information, see “Customizing XML Schema-to-Java Mapping Using Binding Declarations” in Getting Started With WebLogic Web Services Using JAX-WS.
o SOAP handler files. For more information, see “Creating and Using SOAP Message Handlers” in Programming Advance Features of WebLogic Web Services Using JAX-WS.
* For JAX-RPC, one or more XMLBeans configuration files, which by convention end in .xsdconfig. Use this element if your Web Service uses Apache XMLBeans data types as parameters or return values.
The <binding> element is similar to the standard Ant <Fileset> element and has all the same attributes. See the Apache Ant documentation on the Fileset element for the full list of attributes you can specify.
Note: The <binding> element replaces the <xsdConfig> element, which is deprecated as of version 10.0 of WebLogic Server.
See here for detail. -
Hi Guys,
I'm using the command line, air sdk tools to package my air
app. I can do everything except select the destination where the
packaged app should be placed. I have read the documentation;
http://help.adobe.com/en_US/AIR/1.1/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7fd6. html
and it says nothing about a destination directory, only to
specify the name of the app, i.e. myApp.air. Is there an argument,
or another way, to set the destination directory of the final
packaged application?
I tried to use /Documents/SomeDirectory/myApp.air, but I
simply get an error.
Any help would be greatly appreciated.
ThanksThe "myApp.air" argument is the output file, not the name of
the application. Specifying a path should work, although the parent
directory has to exist. You don't mention what error you received,
but I suspect you simply gave an invalid path. -
Customized license for an AUR package
Hello community,
yesterday I stumbled upon a very cool LaTeX package for creating commutative diagrams. I found it very useful and thus wanted to create an AUR package for it, but unfortunately it has a somewhat unusual license. Here it is:
%% COPYRIGHT NOTICE: %
%% This package may be copied and used freely for any academic %
%% (not commercial or military) purpose, on condition that it %
%% is not altered in any way, and that an acknowledgement is %
%% included in any published work making substantial use of it. %
%% IT IS SUPPLIED "AS IS", WITHOUT WARRANTY, EXPRESS OR IMPLIED. %
%% If you are doing something where mistakes cost money (or where %
%% success brings financial profit) then you must use commercial %
%% software, not this package. In any case, please remember to %
%% keep several backup copies of all files, and check everything %
%% visually before sending final copy to the publishers. %
%% You may use this package as a (substantial) aid to writing an %
%% academic research or text book on condition that %
%% (i) you contact me at a suitable time to ensure that you have %
%% an up-to-date version (and any infelicities can be fixed), %
%% (ii) you send me a copy of the book when it's published. %
Also the source code is mostly kind of closed (you might take a look at http://www.paultaylor.eu/diagrams/diagrams.sty ). I contacted the author and asked whether it would be possible to change the license to some similar but more common license. Unfortunately it seems that the code needs much clean up before it can be published and the author doesn't have the time and resources to take care of it. Thus a closed license similar to the current license would be needed.
So I'd like to ask whether there is a common license similar to the above and if not, whether I can still create an AUR package for it (and what license I should use in this case).
Thanks,
PhotonX
Last edited by PhotonX (2012-07-06 08:42:42)I don't know if it is commonly used for software/code, but I don't think a creative commons license requires source distribution while an "Attribution + Noncommercial + NoDerivatives (by-nc-nd)" creative commons license seems to provide the restrictions the author is aiming for. This would allow for the use of a clear and established license.
Note: I just found a CC FAQ that advises against using it for software. Though the reason seems to be that the license does not make any specific mention of source/object code thus it is not an open source license. However, if one want's a closed license, that may do it ... it's at least worth considering.
It also may be worth considering whether the code in this project uses previously GPL'ed code/tools which I'm pretty sure it would. If that's the case then I believe it must also be GPL. ("I beleive" = don't take my word on this ... but this should be looked into).
EDIT: come to think of it, no actual "software" is being distributed as there is no compiled version of this. What is being distributed is a document. It is a style document with instructions that are interpreted by other software. That other software could be, but need not be, a GPL'ed latex compiler. It could be any sort of markup compiler that can work with latex-like instructions. Anyhow, the point is what is to be protected is not a resulting program, but the text contents of the sty document itself. Thefore a simpler document copyright would be more fitting than a software license, wouldn't it? So, I would recommend a creative commons variant. This allows others to use his sty document while (optionally) requiring attribution, disallowing modification of the sty document, and disallowing commercial use.
EDIT2: following from the above, with a comparison - this is like distrubuting campaigns or other plugins for the GPL'ed game Battle for Wesnoth. The artwork can be, and often is, under a more restrictive copyright of the author/creator. A sty document seems more like the artwork and added levels of Wesnoth than additional software.
EDIT3: another comparison would be distributed CSS styles. These are (if anything) under document copyright not software license.
Last edited by Trilby (2012-07-06 14:29:51) -
Hello,
I want know when the first version of Class Generator will be
released and the license agreements. Another question : at the
actual moment, can I utilize the Class Generator for commercial
purposes ? I've read the license, and I've understood this is
impossible until the new version will be released.
Thank you in advance
Rolando Ramieri
Agenzia ANSA Roma
nullRolando Ramieri (guest) wrote:
: Hello,
: I want know when the first version of Class Generator will be
: released and the license agreements. Another question : at the
: actual moment, can I utilize the Class Generator for
commercial
: purposes ? I've read the license, and I've understood this is
: impossible until the new version will be released.
: Thank you in advance
: Rolando Ramieri
: Agenzia ANSA Roma
There will be an announcement in a couple of weeks regarding
licensing. Right now it is only a development license.
Oracle XML Team
http://technet.oracle.com
Oracle Technology Network
null
Maybe you are looking for
-
(!apple video) with gnome-mplayer & gecko-mediaplayer
I'm trying to watch these video lectures for my trig class. Can't get them to play. installed firefox 3 (branded) along with gecko-mediaplayer and gnome-mplayer. I'm running arch32 and am having the same problem in kde as I had in gnome. Not sure wha
-
Help required with Access Sequence for 'Delivery output' of Scheduling note
Dear Gurus I need help with creation of an Access Sequence. I have created an access sequence for sales org and customer, where the communication is emailed or faxed to the CR party- Forwarding agent. BUT - some customers have more than 1 forwarding
-
Installing a flash player on a powerbook G4 OS X version 10.5.8
I have a Powerbook G4 Mac OS X version 10.5.8 with a 1.5GHz powerPC G4 processor with 1.25 GB of memory. I have tried many different ways of installing a flash player that I have found from forums. All have failed or maybe I did not do it right. Plea
-
HT204406 how to unsubscribe from itunes match
How can i unsubscribe from iTunes Match?
-
Error's with partitioning...
I have been trying for hours to partition my hard drive with 70GB for windows and 82GB for Mac OS X (with 19GB free) but when i try and do it using boot camp assistant it comes up with a error saying "some files cannot be moved" and i have tried the