C# 使用C和实体框架运行Oracle transact-script期间的Oracle错误
Oracle 11.2.0.4.0 我使用C来运行oracle脚本。 我有下一个C方法:C# 使用C和实体框架运行Oracle transact-script期间的Oracle错误,c#,oracle,entity-framework,transactions,C#,Oracle,Entity Framework,Transactions,Oracle 11.2.0.4.0 我使用C来运行oracle脚本。 我有下一个C方法: public void RunOracleTransaction() { OracleTransaction myTrans; OracleCommand myCommand = con.CreateCommand(); myTrans = con.BeginTransaction(System.Data.Isolati
public void RunOracleTransaction()
{
OracleTransaction myTrans;
OracleCommand myCommand = con.CreateCommand();
myTrans = con.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
myCommand.Transaction = myTrans;
myCommand.CommandType = CommandType.Text;
//string cmdQuery = System.IO.File.ReadAllText(@"oracle_MT_rollback.sql");
string cmdQuery = System.IO.File.ReadAllText(@"oracle_MT.sql");
string[] statements = cmdQuery.Split(new string[] { ";\r\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in statements)
{
if (s.Length > 0)
{
try
{
myCommand.CommandText = s;
myCommand.ExecuteNonQuery();
Console.WriteLine(s);
}
catch (OracleException e)
{
Console.WriteLine(e);
Console.WriteLine("\r\nNeither record was written to database.\r\n");
}
//myTrans.Rollback();
}
}
myTrans.Commit();
Console.WriteLine("Commited successfully");
}
Oracle脚本:
ALTER SESSION SET CURRENT_SCHEMA=<schema_name>;
DROP TABLE MSS_CUSTOMERS;
CREATE TABLE MSS_CUSTOMERS(MCS_ID NUMBER NOT NULL, MCS_NAME VARCHAR2(100) NOT NULL, MCS_IS_ACTIVE VARCHAR2(1) NOT NULL, MCS_IS_OWNING_CUSTOMER VARCHAR2(1) NOT NULL, MCS_OWNER_CUSTOMER_ID NUMBER NOT NULL );
ALTER TABLE MSS_CUSTOMERS ADD ( PRIMARY KEY (MCS_ID) );
ALTER TABLE MSS_CUSTOMERS ADD constraint MSS_CUSTOMERS_CSTR1 unique (MCS_NAME);
DROP SEQUENCE MSS_CUSTOMERS_SEQ;
CREATE SEQUENCE MSS_CUSTOMERS_SEQ START WITH 1 ORDER;
CREATE OR REPLACE TRIGGER MSS_CUSTOMERS_TRG BEFORE INSERT OR UPDATE ON MSS_CUSTOMERS FOR EACH ROW Begin if :new.MCS_ID is null then SELECT MSS_CUSTOMERS_SEQ.nextval INTO :new.MCS_ID FROM dual; end if; End;
DROP TABLE MSS_CUSTOMERS_USERS;
CREATE TABLE MSS_CUSTOMERS_USERS ( MCU_CUSTOMER_ID NUMBER NOT NULL, MCU_USER_ID NUMBER NOT NULL );
ALTER TABLE MSS_CUSTOMERS_USERS ADD ( PRIMARY KEY (MCU_USER_ID) );
DROP INDEX MSS_CUSTOMERS_USER_IDX1;
CREATE INDEX MSS_CUSTOMERS_USER_IDX1 ON MSS_CUSTOMERS_USERS (MCU_CUSTOMER_ID);
DROP TABLE MSS_CUSTOMERS_DOMAINS;
CREATE TABLE MSS_CUSTOMERS_DOMAINS ( MCD_CUSTOMER_ID NUMBER NOT NULL, MCD_DOMAIN_ID NUMBER NOT NULL );
ALTER TABLE MSS_CUSTOMERS_DOMaAINS ADD ( PRIMARY KEY (MCD_DOMAIN_ID) );
DROP INDEX MSS_CUSTOMERS_DOMAINS_IDX1;
CREATE INDEX MSS_CUSTOMERS_DOMAINS_IDX1 ON MSS_CUSTOMERS_DOMAINS (MCD_CUSTOMER_ID);
DROP TABLE MSS_DELETED_DOMAIN_NAMES;
CREATE TABLE MSS_DELETED_DOMAIN_NAMES (MDDN_CUSTOMER_ID NUMBER NOT NULL, MDDN_DOMAIN_NAME VARCHAR2(255) NOT NULL );
ALTER TABLE MSS_DELETED_DOMAIN_NAMES ADD ( PRIMARY KEY (MDDN_CUSTOMER_ID, MDDN_DOMAIN_NAME));
CREATE TABLE MSS_CUSTOMERS_LICENSES (MCL_CUSTOMER_ID NUMBER NOT NULL, MCL_LICENSE_ID VARCHAR2(100) NOT NULL, MCL_LICENSE_RELEVANCE_ID NUMBER NOT NULL, MCL_LICENSE_VALUE VARCHAR2(100) NOT NULL);
ALTER TABLE MSS_CUSTOMERS_LICENSES ADD ( PRIMARY KEY (MCL_CUSTOMER_ID, MCL_LICENSE_ID, MCL_LICENSE_RELEVANCE_ID) );
CREATE TABLE MSS_LICENSE_RELEVANCES (MLR_ID NUMBER NOT NULL, MLR_NAME VARCHAR2(4));
ALTER TABLE MSS_LICENSE_RELEVANCES ADD ( PRIMARY KEY (MLR_ID) );
CREATE TABLE MSS_LICENSE_NAMES ( MLN_RELEVANCE_ID NUMBER NOT NULL, MLN_ID VARCHAR2(100) NOT NULL, MLN_LABEL VARCHAR2(100) NOT NULL, MLN_TYPE VARCHAR2(100) NOT NULL );
ALTER TABLE MSS_LICENSE_NAMES ADD ( PRIMARY KEY (MLN_RELEVANCE_ID, MLN_ID) );
DROP TABLE MSS_ROLES;
CREATE TABLE MSS_ROLES ( MR_ID NUMBER NOT NULL, MR_NAME VARCHAR2(100) NOT NULL, MR_CUSTOMER_ID NUMBER NOT NULL );
ALTER TABLE MSS_ROLES ADD ( PRIMARY KEY (MR_ID) );
ALTER TABLE MSS_ROLES ADD constraint MSS_ROLES_CSTR1 unique (MR_CUSTOMER_ID, MR_NAME);
DROP SEQUENCE MSS_ROLES_SEQ;
CREATE SEQUENCE MSS_ROLES_SEQ START WITH 1 ORDER;
CREATE OR REPLACE TRIGGER MSS_ROLES_TRG BEFORE INSERT OR UPDATE ON MSS_ROLES FOR EACH ROW Begin if :new.MR_ID is null then SELECT MSS_ROLES_SEQ.nextval INTO :new.MR_ID FROM dual; end if; End;
DROP TABLE MSS_ROLES_PERMISSIONS;
CREATE TABLE MSS_ROLES_PERMISSIONS ( MRP_ROLE_ID NUMBER NOT NULL, MRP_PERMISSION VARCHAR2(100) NOT NULL );
DROP TABLE MSS_POLICIES;
CREATE TABLE MSS_POLICIES ( MP_POLICY_ID NUMBER NOT NULL, MP_CUSTOMER_ID NUMBER NOT NULL, MP_POLICY_NAME VARCHAR2(100) NOT NULL, MP_POLICY_DESC VARCHAR2(500), MP_LAST_CHANGED INTEGER NOT NULL, MP_DEFAULT_POLICY NUMBER );
ALTER TABLE MSS_POLICIES ADD ( PRIMARY KEY (MP_POLICY_ID) );
ALTER TABLE MSS_POLICIES ADD constraint MSS_POLICIES_CSTR1 unique (MP_CUSTOMER_ID, MP_POLICY_NAME);
DROP SEQUENCE MSS_POLICIES_SEQ;
CREATE SEQUENCE MSS_POLICIES_SEQ START WITH 1 ORDER;
CREATE OR REPLACE TRIGGER MSS_POLICIES_TRG BEFORE INSERT OR UPDATE ON MSS_POLICIES FOR EACH ROW Begin if :new.MP_POLICY_ID is null then SELECT MSS_POLICIES_SEQ.nextval INTO :new.MP_POLICY_ID FROM dual; end if; End;
DROP TABLE MSS_VALIDATORS;
CREATE TABLE MSS_VALIDATORS ( MV_VALIDATOR_ID NUMBER NOT NULL, MV_VALIDATOR_CLASS VARCHAR2(100) NOT NULL, MV_VALIDATOR_DESC VARCHAR2(500) NOT NULL );
ALTER TABLE MSS_VALIDATORS ADD ( PRIMARY KEY (MV_VALIDATOR_ID) );
DROP TABLE MSS_POLICIES_VALIDATORS;
CREATE TABLE MSS_POLICIES_VALIDATORS ( MPV_POLICY_ID NUMBER NOT NULL, MPV_VALIDATOR_ID NUMBER NOT NULL, MPV_PARAM1 VARCHAR2(100), MPV_PARAM2 VARCHAR2(100), MPV_PARAM3 VARCHAR2(100), MPV_PARAM4 VARCHAR2(100), MPV_PARAM5 VARCHAR2(100) );
ALTER TABLE MSS_POLICIES_VALIDATORS ADD ( PRIMARY KEY (MPV_POLICY_ID, MPV_VALIDATOR_ID) );
DROP TABLE MSS_USERS_SECURITY;
CREATE TABLE MSS_USERS_SECURITY ( MUS_USER_ID NUMBER NOT NULL, MUS_PASSWORD_HISTORY VARCHAR2(4000), MUS_HISTORY_MAX_SIZE NUMBER NOT NULL, MUS_LAST_FAILED_LOGIN INTEGER NOT NULL, MUS_LAST_PASSWORD_CHANGED INTEGER NOT NULL, MUS_MIGRATION_TIME INTEGER NOT NULL, MUS_UNLOCK_TIME INTEGER NOT NULL, MUS_IS_ACTIVE NUMBER, MUS_ACTIVE_TIME INTEGER, MUS_FAILED_LOGINS NUMBER NOT NULL, MUS_POLICY_ID NUMBER NOT NULL, MUS_IS_LAST_LOGIN_FAILED NUMBER NOT NULL, MUS_ROLE_ID NUMBER, MUS_IS_CUST_ADMIN INTEGER, MUS_FIRST_FAILED_LOGIN INTEGER NOT NULL, MUS_FAILED_LOGINS_IN_TIMEFRAME INTEGER NOT NULL, MUS_FIRST_PASSWORD_CHANGED INTEGER NOT NULL, MUS_PASSWORD_CHANGES INTEGER NOT NULL );
ALTER TABLE MSS_USERS_SECURITY ADD ( PRIMARY KEY (MUS_USER_ID) );
DROP TABLE MSS_CONFIG;
CREATE TABLE MSS_CONFIG ( MC_ID NUMBER NOT NULL, MC_CUSTOMER_ID NUMBER NOT NULL, MC_NAME VARCHAR2(300) NOT NULL, MC_VALUE VARCHAR2(300) NOT NULL, MC_DESC VARCHAR2(300) );
ALTER TABLE MSS_CONFIG ADD ( PRIMARY KEY (MC_ID) );
ALTER TABLE MSS_CONFIG ADD constraint MSS_CONFIG_CSTR1 unique (MC_CUSTOMER_ID, MC_NAME);
DROP SEQUENCE MSS_CONFIG_SEQ;
CREATE SEQUENCE MSS_CONFIG_SEQ START WITH 1 ORDER;
CREATE OR REPLACE TRIGGER MSS_CONFIG_TRG BEFORE INSERT OR UPDATE ON MSS_CONFIG FOR EACH ROW Begin if :new.MC_ID is null then SELECT MSS_CONFIG_SEQ.nextval INTO :new.MC_ID FROM dual; end if; End;
DROP TABLE MSS_AUDIT_LOG;
CREATE TABLE MSS_AUDIT_LOG ( MAL_AUDIT_ID NUMBER NOT NULL, MAL_USER_CUSTOMER_ID NUMBER NOT NULL, MAL_USER_CUSTOMER_NAME VARCHAR2(100) NOT NULL, MAL_ACTIVE_CUSTOMER_ID NUMBER NOT NULL, MAL_TIME INTEGER NOT NULL, MAL_CONTEXT NUMBER NOT NULL, MAL_OPERATION NUMBER NOT NULL, MAL_LOGIN_NAME VARCHAR2(100) NOT NULL, MAL_FULL_NAME VARCHAR2(200), MAL_AUDIT_TEXT VARCHAR2(4000) NOT NULL );
ALTER TABLE MSS_AUDIT_LOG ADD(PRIMARY KEY (MAL_AUDIT_ID));
DROP SEQUENCE MSS_AUDIT_LOG_SEQ;
CREATE SEQUENCE MSS_AUDIT_LOG_SEQ START WITH 1 ORDER;
CREATE OR REPLACE TRIGGER MSS_AUDIT_LOG_TRG BEFORE INSERT OR UPDATE ON MSS_AUDIT_LOG FOR EACH ROW Begin if :new.MAL_AUDIT_ID is null then SELECT MSS_AUDIT_LOG_SEQ.nextval INTO :new.MAL_AUDIT_ID FROM dual; end if; End;
DROP INDEX MSS_AUDIT_LOG_IDX1;
CREATE INDEX MSS_AUDIT_LOG_IDX1 ON MSS_AUDIT_LOG (MAL_CONTEXT);
DROP INDEX MSS_AUDIT_LOG_IDX2;
CREATE INDEX MSS_AUDIT_LOG_IDX2 ON MSS_AUDIT_LOG (MAL_OPERATION);
DROP INDEX MSS_AUDIT_LOG_IDX3;
CREATE INDEX MSS_AUDIT_LOG_IDX3 ON MSS_AUDIT_LOG (MAL_ACTIVE_CUSTOMER_ID);
DROP TABLE MSS_VALIDATION_KEYS;
CREATE TABLE MSS_VALIDATION_KEYS ( MVK_KEY VARCHAR2(300) NOT NULL, MVK_USER_ID NUMBER NOT NULL, MVK_EXPIRATION INTEGER NOT NULL, MVK_VALUE VARCHAR2(300) );
DROP INDEX MSS_VALIDATION_KEYS_IDX1;
CREATE INDEX MSS_VALIDATION_KEYS_IDX1 ON MSS_VALIDATION_KEYS (MVK_KEY);
DROP TABLE MSS_CUSTOMERS_RECIPIENTS;
CREATE TABLE MSS_CUSTOMERS_RECIPIENTS ( MCR_CUSTOMER_ID NUMBER NOT NULL, MCR_RECIPIENT_NAME VARCHAR2(45) NOT NULL, MCR_RECIPIENT_EMAILS VARCHAR2(1000) NOT NULL );
ALTER TABLE MSS_CUSTOMERS_RECIPIENTS ADD ( PRIMARY KEY (MCR_CUSTOMER_ID, MCR_RECIPIENT_NAME) );
INSERT INTO MSS_CUSTOMERS(MCS_ID, MCS_NAME, MCS_IS_ACTIVE, MCS_IS_OWNING_CUSTOMER, MCS_OWNER_CUSTOMER_ID) VALUES(0, 'HP Saas', 'Y', 'Y', 0);
INSERT ALL INTO MSS_CUSTOMERS_USERS (MCU_CUSTOMER_ID,MCU_USER_ID) VALUES (0, ur_user_id) SELECT ur_user_id FROM USERS_ROLES WHERE UR_ROLE_ID in (SELECT RT_ROLE_ID FROM ROLES WHERE RT_ROLE_NAME='SiteAdministrators');
INSERT ALL INTO MSS_CUSTOMERS_DOMAINS (MCD_CUSTOMER_ID, MCD_DOMAIN_ID) VALUES (0, DOMAIN_ID) SELECT DOMAIN_ID FROM DOMAINS WHERE DOMAIN_NAME in ('DEFAULT','SAAS_INTERNAL');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'create.project.db.user','qcdba','Project database schema user name');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'create.project.db.password','TWO:141-250-140-11-186-204-50-33-117','Project database encrypted schema password');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'create.project.db.server','192.168.11.164','Project database server name');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'create.project.db.tablespace','TDDATA','Project database tablespace (used for oracle only)');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'create.project.db.temp.tablespace','TEMP','Project database temporary tablespace (used for oracle only)');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'max.allowed.cust.admin.users','-1','Maximum customer administrator users allowed in the site');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.expiration.period.in.hours','24','How long before the link in reset password mail will expire');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.expiration.period.in.hours.description','Reset password mail expiration (hours):','');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.expiration.period.in.hours.validation.method','IsNumeric','');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'password.minmum.length.in.chars','6','Indicate the minimum length of each new password');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.full.url','true','Determine if full link will be sent with mail or just short link (Reset My Password)');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.full.url.description','Reset password link is full url:','');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.full.url.true.false.listbox','yes','');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.request.username','false','Indicate whether to send user name in reset password link mail');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mail.reset.password.request.username.true.false.listbox','yes','');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'config.refresh.period.in.minutes','5','The time to refresh the config parameters in minutes');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'strings.refresh.period.in.minutes','60','The time to refresh the strings file in minutes');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'mss.from.email.address','SaaSNotifications@hp.com','');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'is.validate.user.mail','true','Does reset password validate user mail matches QC');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'show.menu.item.users.policy','false','Indicate whethere the Users Policy menu item should be visible');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'user.management.max.uploaded.users','-1','Maximum uploaded users allowed (negative value for unlimited)');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'license.max.number.of.projects.for.site', '-1', 'Licensed number of projects for site.');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'license.exceeding.number.of.projects.for.site', '0', 'Allowed number of projects to exceed the Licensed number of projects for site.');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'saas.monitoring.project.id', '1', 'ID if the project, which serves to Saas monitoring purposes. This project will be hiden in all trees in Add-on');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'synchronize.mail.template.from.msm', 'true', 'if add-on should get email template from MSM');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'password.special.characters', '$#@', 'Special characters for the password validator');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'message.user.locked','Incorrect user login or password. Your account might have been locked after several failed login attempts','Authentication message');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'message.user.inactive','Your user is inactive','Authentication message');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'message.password.expired','Your password is expired. Please go back to HP SaaS Application Lifecycle Management page and click on the Change Password link','Authentication message');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'message.password.not.match.security.policy','Your current password does not meet the current standards. Please go back to HP SaaS Application Lifecycle Management page and click on the Change Password link','Authentication message');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'demo.project.name','QualityCenter_Demo','Demo Project name.');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'demo.project.domain.name','DEFAULT','Demo Project domain name. It should be belong to HP Saas customer');
INSERT INTO MSS_CONFIG (MC_CUSTOMER_ID, MC_NAME, MC_VALUE, MC_DESC) VALUES (-1,'product.name.for.msm','ALM','Farm Product type for MSM: PC/QC/ALM');
INSERT INTO MSS_LICENSE_RELEVANCES (MLR_ID, MLR_NAME) VALUES (1, 'ALM');
INSERT INTO MSS_LICENSE_RELEVANCES (MLR_ID, MLR_NAME) VALUES (2, 'PC');
INSERT INTO MSS_LICENSE_RELEVANCES (MLR_ID, MLR_NAME) VALUES (3, 'SAAS');
INSERT INTO MSS_LICENSE_NAMES (MLN_RELEVANCE_ID, MLN_ID, MLN_LABEL, MLN_TYPE) VALUES (3, 'lic_gen_date', 'License Expiration Date:', 'DATE');
INSERT INTO MSS_LICENSE_NAMES (MLN_RELEVANCE_ID, MLN_ID, MLN_LABEL, MLN_TYPE) VALUES (3, 'lic_gen_proj_count', 'Projects Limit:', 'NUMBER');
INSERT INTO MSS_LICENSE_NAMES (MLN_RELEVANCE_ID, MLN_ID, MLN_LABEL, MLN_TYPE) VALUES (2, 'PRJP_VUSER_LIMIT', 'Vusers Limit:', 'NUMBER');
INSERT INTO MSS_LICENSE_NAMES (MLN_RELEVANCE_ID, MLN_ID, MLN_LABEL, MLN_TYPE) VALUES (2, 'PRJP_VUDS_LIMIT', 'VUDS Limit', 'NUMBER');
INSERT INTO MSS_LICENSE_NAMES (MLN_RELEVANCE_ID, MLN_ID, MLN_LABEL, MLN_TYPE) VALUES (2, 'PRJP_MACHINE_LIMIT', 'Hosts Limit:', 'NUMBER');
INSERT INTO MSS_LICENSE_NAMES (MLN_RELEVANCE_ID, MLN_ID, MLN_LABEL, MLN_TYPE) VALUES (2, 'PRJP_CONCURRENT_RUNS', 'Concurrent Test Runs Limit:', 'NUMBER');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (1,'PasswordMinAlphabeticChars','The password must contain at least $p1 alphabetic character(s)');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (2,'PasswordMinLowerCaseLetters','The password must contain at least $p1 lower case letters');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (3,'PasswordMinUpperCaseLetters','The password must contain at least $p1 upper case letter(s)');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (4,'PasswordMinNumericCharsValidator','The password must contain at least $p1 numeric character(s)');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (5,'PasswordLengthValidator','The password should have a minimum length of $p1 characters and a maximum length of $p2 characters');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (6,'FailedLoginsValidator','After $p1 consecutive unsuccessful login attempts, when the time between attempts is less than $p2 minutes, lock the user for $p3 minutes');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (7,'PasswordHistoryValidator','The password cannot be identical to one of the last $p1 passwords (case insensitive comparison)');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (8,'PasswordMaxAgeValidator','Users must reset their password once in every $p1 days');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (9,'PasswordMinAgeValidator','Users cannot change their password more than $pl times in $p2 hours');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (10,'PasswordLoginNameCommonConsecCharsValidator','The password cannot contain more than $p1 consecutive characters in common with the user login name');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (11,'PasswordFullNameCommonConsecCharsValidator','The password cannot contain more than $p1 consecutive characters in common with the user full name');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (12,'PasswordEmailCommonConsecCharsValidator','The password cannot contain more than $p1 consecutive characters in common with the user email');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (13,'LoginNameContainsPasswordValidator','The user login name cannot contain the password (case insensitive comparison)');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (14,'FullNameContainsPasswordValidator','The user full name cannot contain the password (case insensitive comparison)');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (15,'EmailContainsPasswordValidator','The user email cannot contain the password (case insensitive comparison)');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (16,'PasswordRepeatingCharValidator','The password cannot contain the same character more than $p1 times');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (17,'PasswordLastPasswordCommonSubstringValidator','The password cannot contain more than $p1 consecutive characters in common with the old (previous) password');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (18,'PasswordRepeatingSubstringValidator','The password cannot contain a repeating substring, which length is more than $p1 characters more than $p2 times');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (19,'PasswordSpecialCharsValidator','The password must contain at least $pl special characters');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (20,'PasswordLeadingAlphamericChar','The password must contain a leading alpha-numeric character');
INSERT INTO MSS_VALIDATORS (MV_VALIDATOR_ID, MV_VALIDATOR_CLASS, MV_VALIDATOR_DESC) VALUES (21,'FailedLoginsTimeFrameValidator','After $p1 consecutive failed login attempts within $p2 hours the user will be locked.');
INSERT INTO MSS_POLICIES (MP_CUSTOMER_ID, MP_POLICY_NAME, MP_POLICY_DESC, MP_DEFAULT_POLICY, MP_LAST_CHANGED) VALUES (0,'Default','Default policy', 1, 0);
INSERT INTO MSS_POLICIES (MP_POLICY_ID, MP_CUSTOMER_ID, MP_POLICY_NAME, MP_POLICY_DESC, MP_DEFAULT_POLICY, MP_LAST_CHANGED) VALUES (-1, 0,'TEMPLATE_POLICY_FOR_NEW_CUSTOMERS','Template for first policy for new customers', 0, 0);
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,2,'1');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,3,'1');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,4,'1');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1, MPV_PARAM2) VALUES (-1,5,'8','20');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1, MPV_PARAM2, MPV_PARAM3) VALUES (-1,6,'3','5','60');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,7,'6');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,8,'90');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1, MPV_PARAM2) VALUES (-1,9,'1','12');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,10,'3');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,11,'3');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,12,'3');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,16,'3');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1) VALUES (-1,17,'3');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1, MPV_PARAM2) VALUES (-1,18,'3','1');
INSERT INTO MSS_POLICIES_VALIDATORS (MPV_POLICY_ID, MPV_VALIDATOR_ID, MPV_PARAM1, MPV_PARAM2) VALUES (-1,21,'6','24');
DELETE FROM PARAMS WHERE PARAM_NAME = 'EXTERNAL_AUTHENTICATOR_CLASS_NAME' OR PARAM_NAME = 'AUTHENTICATION';
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE) VALUES ('EXTERNAL_AUTHENTICATOR_CLASS_NAME', 'com.mercury.mms.qc.security.Authenticator');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE) VALUES ('AUTHENTICATION', 'External');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE, PARAM_DESCRIPTION) VALUES('MSM_BASE_URL', 'https://portal.saas.hp.com', 'MSM URL for integration');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE, PARAM_DESCRIPTION) VALUES('STAGING', 'false', 'Staging farm will not receive notifications from MSM');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE, PARAM_DESCRIPTION) VALUES('DEV_MODE', 'false', 'Will not handshake API requests comes from MSM (do not modify it without R&D permissions)');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE, PARAM_DESCRIPTION) VALUES('CustomerName', 'Farm name', 'Farm name for MSM integration');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE, PARAM_DESCRIPTION) VALUES('QC_VERSION', '11.52', 'Product version for MSM integration');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE, PARAM_DESCRIPTION, PARAM_IS_SYSTEM, PARAM_IS_VISIBLE) VALUES ('PASSWORD_RESET_DISABLE','Y','This parameter determines whether ALM users can reset their passwords using the Forgot Password link in the ALM Login window.','N','Y');
INSERT INTO PARAMS (PARAM_NAME, PARAM_VALUE, PARAM_DESCRIPTION, PARAM_IS_VISIBLE) VALUES ('SAAS_ADDON_FIRST_CHILD_INITIALIZATION','Y','Assigning all licenses to the first child which will be created manually by HP SaaS customer','Y');
在运行该sql脚本的过程中,一般事务成功,但在执行某些INSERT的过程中,我可以看到ORA-04098:触发器无效且重新验证失败,违反了ORA-00001 unique
当我通过SQLDeveloper工具运行这个脚本时,一切正常,没有遇到任何问题
你能帮我解决这个问题吗
提前谢谢。*
ORA-04098
CAUSE
A trigger was attempted to be retrieved for execution and was found to be invalid. This also means that compilation/authorization failed for the trigger.
RESOLUTION
The options are to resolve the compilation/authorization errors, disable the trigger, or drop the trigger.
You can also try running the following command to check for errors on the trigger
*
ORA-00001
CAUSE
You tried to execute an INSERT or UPDATE statement that has created a duplicate value in a field restricted by a unique index.
RESOLUTION
The option(s) to resolve this Oracle error are:
Option #1
Drop the unique constraint.
Option #2
Change the constraint to allow duplicate values.
Option #3
Modify your SQL so that a duplicate value is not created