diff --git a/sqlTranslate/.idea/workspace.xml b/sqlTranslate/.idea/workspace.xml
index 4aae095aa..7fd597c46 100644
--- a/sqlTranslate/.idea/workspace.xml
+++ b/sqlTranslate/.idea/workspace.xml
@@ -4,10 +4,9 @@
-
+
-
-
+
@@ -294,7 +293,21 @@
1725956415475
-
+
+ 1725958136981
+
+
+
+ 1725958136981
+
+
+ 1725978582486
+
+
+
+ 1725978582486
+
+
@@ -314,7 +327,6 @@
-
@@ -323,7 +335,8 @@
-
+
+
diff --git a/sqlTranslate/src/main/java/Lexer/OracleLexer.java b/sqlTranslate/src/main/java/Lexer/OracleLexer.java
index e1b6e263c..95ef462be 100644
--- a/sqlTranslate/src/main/java/Lexer/OracleLexer.java
+++ b/sqlTranslate/src/main/java/Lexer/OracleLexer.java
@@ -29,9 +29,24 @@ public class OracleLexer {
"(NCHAR\\(.*?\\))|" + // NCHAR() function
"(NVARCHAR2\\(.*?\\))|" + // NVARCHAR2() function
"(RAW\\(.*?\\))|" + // RAW() function
+
+ "(COUNT\\(.*?\\))|" + // COUNT() function
+ "(SUM\\(.*?\\))|" + // SUM() function
+ "(AVG\\(.*?\\))|" + // AVG() function
+ "(MAX\\(.*?\\))|" + // MAX() function
+ "(MIN\\(.*?\\))|" + // MIN() function
+
"(NOT NULL)|" +
"(PRIMARY KEY)|" +
"(FOREIGN KEY)|" +
+ "(DOUBLE PRECISION)|" +
+ "(TIMESTAMP WITH TIME ZONE)|" +
+ "(TIMESTAMP WITH LOCAL TIME ZONE)|" +
+ "(LONG RAW)|" +
+ "(INTERVAL YEAR TO MONTH)|" +
+ "(INTERVAL DAY TO SECOND)|" +
+ "(REF CURSOR)|" +
+
"(\\b[A-Za-z_][A-Za-z0-9_]*\\b)|" + // Keywords and identifiers
"(\\d+\\.?\\d*)|" + // Numbers (integer or decimal)
@@ -107,9 +122,23 @@ public class OracleLexer {
}else if (tokenValue.matches("(?i)RAW\\(.*?\\)")) {
// RAW() function, CASE_INSENSITIVE
return new Token(Token.TokenType.KEYWORD, tokenValue);
+ }else if (tokenValue.matches("(?i)COUNT\\(.*?\\)")) {
+ // RAW() function, CASE_INSENSITIVE
+ return new Token(Token.TokenType.KEYWORD, tokenValue);
+ }else if (tokenValue.matches("(?i)SUM\\(.*?\\)")) {
+ // RAW() function, CASE_INSENSITIVE
+ return new Token(Token.TokenType.KEYWORD, tokenValue);
+ }else if (tokenValue.matches("(?i)AVG\\(.*?\\)")) {
+ // RAW() function, CASE_INSENSITIVE
+ return new Token(Token.TokenType.KEYWORD, tokenValue);
+ }else if (tokenValue.matches("(?i)MAX\\(.*?\\)")) {
+ // RAW() function, CASE_INSENSITIVE
+ return new Token(Token.TokenType.KEYWORD, tokenValue);
+ }else if (tokenValue.matches("(?i)MIN\\(.*?\\)")) {
+ // RAW() function, CASE_INSENSITIVE
+ return new Token(Token.TokenType.KEYWORD, tokenValue);
}
-
else if (isKeyword(tokenValue)) {
return new Token(Token.TokenType.KEYWORD, tokenValue);
} else if (tokenValue.matches("[a-zA-Z_][a-zA-Z0-9_]*")) {