使用 SQLDeveloper 2.1.1.64,如果您尝试键入以下代码:
DECLARE
v_status_code NUMBER;
v_status_text VARCHAR2(30);
v_to_delete NUMBER := 5;
BEGIN
PACKAGE_NAME.Delete(v_to_delete, v_status_code, v_status_text);
END;
在 PACKAGE_NAME.Delete(...) 行后按 Enter 将使 Delete 变为全部大写 (DELETE)。我在 SQL Formatter 选项中关闭了大小写更改,但这仍然会发生。我遇到了与此类似的其他问题,它会随机重新格式化代码行,但我想不出一个与此一致的示例。具体的包名无关紧要,即使 PACKAGE_NAME 是 UpperCamelCase 也是如此。
我不知道这是否是 SQLDeveloper 的错误,或者我是否在某处遗漏了一些设置。似乎 Tools > Preferences > Database > SQL Formatter > Oracle Formatting 下的 SQL Formatter 设置不这样做,所以我不知道该怎么做。不得不捕捉其中一些格式更改变得很烦人,我有时只在做差异时才注意到。