小编Nit*_*Sen的帖子

在包/存储过程中改变会话 NLS_LENGTH_SEMANTICS=CHAR

我们的应用程序在 oracle 10g 数据库上运行,我们现在计划将其迁移到 exadata。为此,我们必须遵循一些 Exadata 会接受的合规性。其中之一是在定义的开头将语句添加到每个现有的包/过程/函数

alter session set NLS_LENGTH_SEMANTICS='CHAR'
Run Code Online (Sandbox Code Playgroud)

我只想检查一下,更改会话以更改此会话变量是否会影响代码功能?在将这个语句添加到所有对象时,我们必须记住哪些事情?

任何线索将不胜感激

oracle session plsql session-variables oracle10g

6
推荐指数
1
解决办法
9912
查看次数

DBMS_REDEFINITION.start_redef_table 权限不足错误

我正在尝试对现有表进行分区,而不使用 Oracle 删除和重新创建它。

我的 Oracle 10g 支持应用程序中的 DBMS_REDEFINITION 包

我已按照 oracle 文档中的说明向用户授予了所有必要的权限。

grant CREATE ANY TABLE to DDUSER;
grant ALTER ANY TABLE to DDUSER;
grant DROP ANY TABLE to DDUSER;
grant LOCK ANY TABLE to DDUSER;
grant SELECT ANY TABLE to DDUSER;
grant execute on dbms_redefinition to DDUSER;
Run Code Online (Sandbox Code Playgroud)

我能够执行以下程序

begin
Dbms_Redefinition.Can_Redef_Table('DDUSER', 'TABLE');
end;
This throws no error neither any result (Assuming this is as expected)
Run Code Online (Sandbox Code Playgroud)

但是当我想跑的时候

BEGIN
  DBMS_REDEFINITION.start_redef_table(
    uname      => 'DDUSER',        
    orig_table => 'TABLE',
    int_table  => 'TABLE_1');
END;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误报告: …

oracle plsql oracle10g dbms-redefinition

5
推荐指数
1
解决办法
9411
查看次数

如何在内部生成oracle rowid?

我想知道,oracle中的ROWID是否会逐步生成?如果我尝试下面的查询

select min(ROWID) from table
Run Code Online (Sandbox Code Playgroud)

我总是得到表中第一个插入行的ROWID,或者我可能最终得到任何随机行的ROWID?如果有人可以请光一点,这将是非常有帮助的

sql oracle rowid

2
推荐指数
1
解决办法
5049
查看次数