OracleBuilder.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. using System.Threading.Tasks;
  7. namespace SqlSugar
  8. {
  9. public class OracleBuilder : SqlBuilderProvider
  10. {
  11. public override string SqlParameterKeyWord
  12. {
  13. get
  14. {
  15. return ":";
  16. }
  17. }
  18. public override string SqlDateNow
  19. {
  20. get
  21. {
  22. return "sysdate";
  23. }
  24. }
  25. public override string FullSqlDateNow
  26. {
  27. get
  28. {
  29. return "select systimestamp from dual";
  30. }
  31. }
  32. public override string SqlTranslationLeft { get { return "\""; } }
  33. public override string SqlTranslationRight { get { return "\""; } }
  34. public override string GetTranslationTableName(string name)
  35. {
  36. var result = base.GetTranslationTableName(name);
  37. if (result.Contains("(") && result.Contains(")"))
  38. return result;
  39. else
  40. return result.ToUpper(IsUppper);
  41. }
  42. public override string GetTranslationColumnName(string entityName, string propertyName)
  43. {
  44. var result = base.GetTranslationColumnName(entityName, propertyName);
  45. return result.ToUpper(IsUppper);
  46. }
  47. public override string GetTranslationColumnName(string propertyName)
  48. {
  49. var result = base.GetTranslationColumnName(propertyName);
  50. return result.ToUpper(IsUppper);
  51. }
  52. public override string RemoveParentheses(string sql)
  53. {
  54. if (sql.StartsWith("(") && sql.EndsWith(")"))
  55. {
  56. sql = sql.Substring(1, sql.Length - 2);
  57. }
  58. return sql;
  59. }
  60. public override void FormatSaveQueueSql(StringBuilder sqlBuilder)
  61. {
  62. var sql = sqlBuilder?.ToString();
  63. if (sql?.TrimStart()?.Substring(0, 5)?.EqualCase("begin") != true)
  64. {
  65. sqlBuilder.Clear();
  66. sqlBuilder.AppendLine("begin");
  67. sqlBuilder.Append(sql);
  68. sqlBuilder.AppendLine("end; ");
  69. }
  70. }
  71. #region Helper
  72. public bool IsUppper
  73. {
  74. get
  75. {
  76. if (this.Context.CurrentConnectionConfig.MoreSettings == null)
  77. {
  78. return true;
  79. }
  80. else
  81. {
  82. return this.Context.CurrentConnectionConfig.MoreSettings.IsAutoToUpper == true;
  83. }
  84. }
  85. }
  86. #endregion
  87. }
  88. }