diff --git a/ChinookDatabase.Test/ChinookDatabase.Test.csproj b/ChinookDatabase.Test/ChinookDatabase.Test.csproj
index bf27cac..754d6b2 100644
--- a/ChinookDatabase.Test/ChinookDatabase.Test.csproj
+++ b/ChinookDatabase.Test/ChinookDatabase.Test.csproj
@@ -3,7 +3,8 @@
net8.0
enable
- enable
+ disable
+ true
diff --git a/ChinookDatabase.Test/appsettings.test.json b/ChinookDatabase.Test/appsettings.test.json
index 307b153..46cf323 100644
--- a/ChinookDatabase.Test/appsettings.test.json
+++ b/ChinookDatabase.Test/appsettings.test.json
@@ -3,7 +3,7 @@
"Chinook_Db2": "Server=localhost;Database=Chinook;User Id=chinook;Password=chinook",
"Chinook_MySql": "Server=localhost;Database=Chinook;Uid=chinook;Pwd=chinook;",
"Chinook_MySql_AutoIncrement": "Server=localhost;Database=Chinook_AutoIncrement;Uid=chinook;Pwd=chinook;",
- "Chinook_Oracle": "Data Source=xe;User Id=chinook;Password=chinook;",
+ "Chinook_Oracle": "Data Source=localhost:1521/XEPDB1;User Id=c##chinook;Password=chinook;",
"Chinook_PostgreSql": "Server=localhost;Database=Chinook;User Id=chinook;Password=chinook;",
"Chinook_Sqlite": "Data Source=..\\..\\..\\ChinookDatabase\\DataSources\\Chinook_Sqlite.sqlite",
"Chinook_Sqlite_AutoIncrement": "Data Source=..\\..\\..\\ChinookDatabase\\DataSources\\Chinook_Sqlite_AutoIncrementPKs.sqlite",
diff --git a/ChinookDatabase/ChinookDatabase.csproj b/ChinookDatabase/ChinookDatabase.csproj
index 58e4bf5..6a22c58 100644
--- a/ChinookDatabase/ChinookDatabase.csproj
+++ b/ChinookDatabase/ChinookDatabase.csproj
@@ -3,7 +3,8 @@
net8.0
enable
- enable
+ disable
+ $(NoWarn);SYSLIB0051
diff --git a/ChinookDatabase/DataSources/Chinook_Oracle.sql b/ChinookDatabase/DataSources/Chinook_Oracle.sql
index d0e4412..39f270e 100644
--- a/ChinookDatabase/DataSources/Chinook_Oracle.sql
+++ b/ChinookDatabase/DataSources/Chinook_Oracle.sql
@@ -11,27 +11,27 @@
/*******************************************************************************
Drop database if it exists
********************************************************************************/
-DROP USER chinook CASCADE;
+DROP USER c##chinook CASCADE;
/*******************************************************************************
Create database
********************************************************************************/
-CREATE USER chinook
-IDENTIFIED BY p4ssw0rd
+CREATE USER c##chinook
+IDENTIFIED BY chinook
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 10M ON users;
-GRANT connect to chinook;
-GRANT resource to chinook;
-GRANT create session TO chinook;
-GRANT create table TO chinook;
-GRANT create view TO chinook;
+GRANT connect to c##chinook;
+GRANT resource to c##chinook;
+GRANT create session TO c##chinook;
+GRANT create table TO c##chinook;
+GRANT create view TO c##chinook;
-conn chinook/p4ssw0rd
+conn c##chinook/chinook
/*******************************************************************************
diff --git a/ChinookDatabase/DdlStrategies/OracleStrategy.cs b/ChinookDatabase/DdlStrategies/OracleStrategy.cs
index f1c3093..fb9bf2e 100644
--- a/ChinookDatabase/DdlStrategies/OracleStrategy.cs
+++ b/ChinookDatabase/DdlStrategies/OracleStrategy.cs
@@ -38,28 +38,28 @@ public override string FormatDateValue(string value)
_ => "error_" + column.DataType
};
- public override string WriteDropDatabase(string databaseName) => $"DROP USER {databaseName.ToLower()} CASCADE;";
+ public override string WriteDropDatabase(string databaseName) => $"DROP USER {GetUsername(databaseName)} CASCADE;";
public override string WriteCreateDatabase(string databaseName)
{
- var name = databaseName.ToLower();
+ var username = GetUsername(databaseName);
var builder = new StringBuilder();
- builder.AppendFormat("CREATE USER {0}\r\n", name)
- .AppendFormat("IDENTIFIED BY p4ssw0rd\r\n")
+ builder.AppendFormat("CREATE USER {0}\r\n", username)
+ .AppendFormat("IDENTIFIED BY {0}\r\n", GetPassword(databaseName))
.AppendFormat("DEFAULT TABLESPACE users\r\n")
.AppendFormat("TEMPORARY TABLESPACE temp\r\n")
.AppendFormat("QUOTA 10M ON users;\r\n\r\n")
- .AppendFormat("GRANT connect to {0};\r\n", name)
- .AppendFormat("GRANT resource to {0};\r\n", name)
- .AppendFormat("GRANT create session TO {0};\r\n", name)
- .AppendFormat("GRANT create table TO {0};\r\n", name)
- .AppendFormat("GRANT create view TO {0};\r\n", name);
+ .AppendFormat("GRANT connect to {0};\r\n", username)
+ .AppendFormat("GRANT resource to {0};\r\n", username)
+ .AppendFormat("GRANT create session TO {0};\r\n", username)
+ .AppendFormat("GRANT create table TO {0};\r\n", username)
+ .AppendFormat("GRANT create view TO {0};\r\n", username);
return builder.ToString();
}
- public override string WriteUseDatabase(string databaseName) => $"conn {databaseName.ToLower()}/p4ssw0rd";
+ public override string WriteUseDatabase(string databaseName) => $"conn {GetUsername(databaseName)}/{GetPassword(databaseName)}";
public override string WriteForeignKeyDeleteAction(ForeignKeyConstraint foreignKeyConstraint) => foreignKeyConstraint.DeleteRule switch
{
@@ -70,6 +70,9 @@ public override string WriteCreateDatabase(string databaseName)
public override string WriteForeignKeyUpdateAction(ForeignKeyConstraint foreignKeyConstraint) => string.Empty;
public override string WriteFinishCommit() => "commit;\r\nexit;";
+
+ private static string GetUsername(String databaseName) => $"c##{databaseName.ToLower()}";
+ private static string GetPassword(String databaseName) => databaseName.ToLower();
}
}
\ No newline at end of file
diff --git a/ChinookDatabase/_T4Templates/Chinook.ttinclude b/ChinookDatabase/_T4Templates/Chinook.ttinclude
index 1385b00..0e28980 100644
--- a/ChinookDatabase/_T4Templates/Chinook.ttinclude
+++ b/ChinookDatabase/_T4Templates/Chinook.ttinclude
@@ -6550,28 +6550,28 @@
_ => "error_" + column.DataType
};
- public override string WriteDropDatabase(string databaseName) => $"DROP USER {databaseName.ToLower()} CASCADE;";
+ public override string WriteDropDatabase(string databaseName) => $"DROP USER {GetUsername(databaseName)} CASCADE;";
public override string WriteCreateDatabase(string databaseName)
{
- var name = databaseName.ToLower();
+ var username = GetUsername(databaseName);
var builder = new StringBuilder();
- builder.AppendFormat("CREATE USER {0}\r\n", name)
- .AppendFormat("IDENTIFIED BY p4ssw0rd\r\n")
+ builder.AppendFormat("CREATE USER {0}\r\n", username)
+ .AppendFormat("IDENTIFIED BY {0}\r\n", GetPassword(databaseName))
.AppendFormat("DEFAULT TABLESPACE users\r\n")
.AppendFormat("TEMPORARY TABLESPACE temp\r\n")
.AppendFormat("QUOTA 10M ON users;\r\n\r\n")
- .AppendFormat("GRANT connect to {0};\r\n", name)
- .AppendFormat("GRANT resource to {0};\r\n", name)
- .AppendFormat("GRANT create session TO {0};\r\n", name)
- .AppendFormat("GRANT create table TO {0};\r\n", name)
- .AppendFormat("GRANT create view TO {0};\r\n", name);
+ .AppendFormat("GRANT connect to {0};\r\n", username)
+ .AppendFormat("GRANT resource to {0};\r\n", username)
+ .AppendFormat("GRANT create session TO {0};\r\n", username)
+ .AppendFormat("GRANT create table TO {0};\r\n", username)
+ .AppendFormat("GRANT create view TO {0};\r\n", username);
return builder.ToString();
}
- public override string WriteUseDatabase(string databaseName) => $"conn {databaseName.ToLower()}/p4ssw0rd";
+ public override string WriteUseDatabase(string databaseName) => $"conn {GetUsername(databaseName)}/{GetPassword(databaseName)}";
public override string WriteForeignKeyDeleteAction(ForeignKeyConstraint foreignKeyConstraint) => foreignKeyConstraint.DeleteRule switch
{
@@ -6582,6 +6582,9 @@
public override string WriteForeignKeyUpdateAction(ForeignKeyConstraint foreignKeyConstraint) => string.Empty;
public override string WriteFinishCommit() => "commit;\r\nexit;";
+
+ private static string GetUsername(String databaseName) => $"c##{databaseName.ToLower()}";
+ private static string GetPassword(String databaseName) => databaseName.ToLower();
}