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;
}
};
关键在于要找到其中的恒等关系,倒叙遍历数组,此题解法比较巧妙:自底向上 + 贪心