tags:

views:

57

answers:

3

There are some types with "sys.ku$_" prefix, but is that "ku" abbreviation of something? Just nice to know things :)

A: 

A system defined Type.

Not sure what the Ku stands for.

tdtje
That I would like to know :)
oocce
And btw it's type of sys not system. They are different users.
oocce
+1  A: 

Maybe it stands for "knowledge unit"? In Knowledge Management systems:

a KU is anything worth storing that may help things to be done better in the future: help, best practice guidelines etc.

Anyway I don't have any further ideas about this abbreviation etymology :)

andr
I also want to use common types and do things with best practices, but I don't want to use anything which looks weird and I don't even know what it stands for. Of course it's easier to write ku$_vcnt than for example something like dbms_utility.varchar2_nested_table_type. But code readability it's better with long name which says directly what it represent.
oocce
@oocce I fully agree with you, but these "ku$" types and views are not widely used - I suppose - so that is not a common speck in the eye
andr
+4  A: 

My suspicion: They're struct definitions in the Oracle kernel, as the V$ objects are public interfaces to dynamic performance information, the GV$ objects are the cross-instance version of the V$ objects, and the X$ objects are the actual data in the kernel. (Think of them as a linked-list of structs, as that's how a lot of them seem to be implemented. Oracle's doesn't call them, for example, "LRU chains" by accident.)

My opinion: You don't need to know what they are, and you should never ever depend on them, because Oracle can and will changed them without any notification.

Adam Musch
Is it so that you should never use any objects own by sys? Only using stuff included in internal packages like in dbms_*? We are heavily using views of sys for example. Are Oracle going to change those or are those frozen to ensure backward compatibility?
oocce
The X$ and KU$ objects are undocumented. The objects owned by sys that are documented (such as the V$ views, described in the Database Reference) can and should be used. Oracle changes those very slowly, adding functionality but never removing it; that's the main reason why LONG remains a supported datatype - it exists in V$ views.
Adam Musch