}
public OracleLobStorageClause parseLobStorage() {
lexer.nextToken();
OracleLobStorageClause clause = new OracleLobStorageClause();
accept(Token.LPAREN);
this.names(clause.getItems());
accept(Token.RPAREN);
accept(Token.STORE);
accept(Token.AS);
for (;;) {
if (identifierEquals("SECUREFILE")) {
lexer.nextToken();
clause.setSecureFile(true);
continue;
}
if (identifierEquals("BASICFILE")) {
lexer.nextToken();
clause.setBasicFile(true);
continue;
}
if (lexer.token() == Token.LPAREN) {
lexer.nextToken();
for (;;) {
if (lexer.token() == Token.TABLESPACE) {
lexer.nextToken();
clause.setTableSpace(this.name());
continue;
}
if (lexer.token() == Token.ENABLE) {
lexer.nextToken();
accept(Token.STORAGE);
accept(Token.IN);
accept(Token.ROW);
clause.setEnable(true);
continue;
}
if (lexer.token() == Token.CHUNK) {
lexer.nextToken();
clause.setChunk(this.primary());
continue;
}
if (lexer.token() == Token.NOCACHE) {
lexer.nextToken();
clause.setCache(false);
if (lexer.token() == Token.LOGGING) {
lexer.nextToken();
clause.setLogging(true);
}
continue;
}
if (lexer.token() == Token.NOCOMPRESS) {
lexer.nextToken();
clause.setCompress(false);
continue;
}
if (lexer.token() == Token.KEEP_DUPLICATES) {
lexer.nextToken();
clause.setKeepDuplicate(true);
continue;
}
break;
}