oracle - Package recompile after changing nls_length_semantics -
I have a database where the nls_length_semantics value has been changed from byte to four. Is it necessary to recompile all packages that are the externally accessed varchar2 based data types (for example dbms_sql)?
@gwu is wrong in my opinion, at least it is wrong in soul, it is not a matter of desire It is a matter of necessity, though, it is also true in the sense that he says: it depends .
You need to recompile your package, if the underlying data in the database is multi-byte
Today I have a problem where the packages in the byte format were compiled, although my The tables contained in the tables are clearly defined in Unicode (for example) VARCHAR2 (20 CRAR), while the code in my PL / SQL package is defined as VARCHAR2 (20) only
This means that a column defined with a length of 50, always does not fit in the PL / SQL variables defined as 50/50 length. My user is reporting the errors of "character buffer very small" type as a result.
If you have a similar case then a recompile of the package is required.
However, I really want to know how it will know if a package was compiled in a BYTE format. In this way I will know which of my packages needs to be compiled again. Without knowing it, I do not have a way to actively get out of there, compile them again. I just have to wait for the user to report the problem.
I think I can compile all the courses in them, but it will lock my database while the user is still in it. Therefore, I will have to do some downtime again to fix the whole problem: - (
- Edit -
Previously read comments from AlexPoll See that posting. See dba_plsql_object_settings
gives me the required information!
Comments
Post a Comment