2.28笔记

文章讲述了在Oracle环境中遇到的多列插入权限问题,强调了在tabletest前加上模式名的重要性。讨论了createview权限的继承和撤销,以及如何通过物化视图确保即使失去查询权限也能访问数据。还提到了一个编程问题,如何使用minIncrements函数使二叉树所有路径值相等的最小代价,采用自底向上的贪心策略。
摘要由CSDN通过智能技术生成

1,oracle中多列插入出现了问题,不清楚什么原因

2,

create view tabletest_view as
select * from tabletest
> ORA-01031: 权限不足

        此时用户A已经将表tabletest的select权限以及create view权限都赋予给了scott,还是报了权限不足的错误。

        原因:在tabletest前应加模式名,改为A.tabletest

3,如果DBA赋给用户scott ‘create view’的权限,用户A也赋予用户scott‘create view’的权限,并且A的权限是DBA赋予的,此时当撤销了A对scott赋予的权限,scott就不再具有‘create view’的权限了。通过查询session_privs表能更好理解,用户A与DBA赋予的create view没有区别。

这是scott具有的权限,若有create view权限,也只为其中一行,不存在是谁给他的权限。

4,用户A创建一张表tabletest,将select该表的权限赋给scott,一段时间后撤回查询权限,scott还能否查看到tabletest中的数据?

        创建视图的办法不行,一旦用户A收回了对表的查询权限,scott创建的表包括依照表创建的视图都无法进行查询了。

        而通过创建物化视图可以实现,当DBA赋予用户scott CREATE MATERIALIZED VIEW的权限后,用户scott可以创建物化视图记录表testtable的数据,当用户A撤回了对表的select权限后,用户scott仍然可以查询到该表中的数据。但没有了查询权限后,物化视图无法进行刷新,一旦A对表进行了数据更改,用户scott无法得知。

5,力扣2673 使二叉树所有路径值相等的最小代价

class Solution {
public:
    int minIncrements(int n, vector<int>& cost) {
        int ans = 0;
        for (int i = n - 2; i > 0; i -= 2) {
            ans += abs(cost[i] - cost[i + 1]);
            cost[i / 2] += max(cost[i], cost[i + 1]);
        }
        return ans;
    }
};

关键在于要找到其中的恒等关系,倒叙遍历数组,此题解法比较巧妙:自底向上 + 贪心

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值