我尝试使用以下方法刷新物化视图:
DBMS_MVIEW.REFRESH('v_materialized_foo_tbl')
Run Code Online (Sandbox Code Playgroud)
但是它抛出了无效的sql语句.
然后我创建了一个这样的存储过程:
CREATE OR REPLACE
PROCEDURE MAT_VIEW_FOO_TBL
IS
BEGIN
DBMS_MVIEW.REFRESH('v_materialized_foo_tbl')
END MAT_VIEW_FOO_TBL IS;
Run Code Online (Sandbox Code Playgroud)
此过程已成功创建,但在我调用此过程时
MAT_VIEW_FOO_TBL;
Run Code Online (Sandbox Code Playgroud)
它再次抛出错误.
请为此问题提出解决方案.
谢谢,Srinivas
我创建了一个test.sql文件,里面我放了:
begin
alter table table1 enable row movement;
alter table table1 shrink space;
end;
/
Run Code Online (Sandbox Code Playgroud)
这是不允许的?因为我收到错误:
Encountered the symbol "ALTER" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
Run Code Online (Sandbox Code Playgroud) 问题可能过于简单,但我确实需要帮助.
我在Oracle 10g中创建了一个存储过程,但我无法调用它.我正在使用SQL Developer来管理数据库.
CREATE OR REPLACE
FUNCTION check_login
(username IN VARCHAR2, pwd IN VARCHAR2)
RETURN VARCHAR2
IS
isUserValid INTEGER;
BEGIN
SELECT Count(*) INTO isUserValid
FROM users
WHERE Username = username AND PASS_WORD = pwd;
return isUserValid;
END;
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个:
CREATE OR REPLACE
PROCEDURE check_login
(username IN VARCHAR2, pwd IN VARCHAR2, RESULT OUT INTEGER)
IS
isUserValid INTEGER;
BEGIN
SELECT Count(*) INTO isUserValid
FROM users
WHERE Username = username AND PASS_WORD = pwd;
RESULT := isUserValid;
END;
Run Code Online (Sandbox Code Playgroud)
解析两者都不会给出任何错误消息.我使用以下语法来调用它们:
BEGIN
check_login('admin', 'admin');
END; …
Run Code Online (Sandbox Code Playgroud) 在Oracle DBMS中,性能更好,从另一个pl/sql存储过程调用java存储过程或从另一个pl/sql存储过程调用pl/sql存储过程.
顺便说一下,我的pl/sql过程中有一个循环,它会多次调用java过程(即我的代码在PL/SQL和Java存储过程之间翻转),这样会降低性能吗?
我正在使用Windows操作系统,我知道这个设置存储在注册表中.问题是注册表路径从版本变为版本,虽然浏览那一堆注册表键肯定不是一个好主意.
我可以得到NLS_LANG
服务器的SELECT USERENV ('language') FROM DUAL
.
我想将它与客户端设置进行比较,并在它们不匹配时显示警告,就像Pl/Sql Developer一样.
我有一个oracle完全转储.我知道我必须使用该fromuser
touser
条款对转储进行处理.但是我不知道转储中包含的模式的名称.
如何才能打开使用Oracle 10g创建的转储来检查和分析内容?
我有一个当前的数据库驱动的应用程序,它有几种访问数据的方法.
我需要实现基于上下文的审计,因为当前的数据审计不足以回溯识别导致数据更改的进程.
我目前正在考虑将数据模型隐藏在XAPI(事务API)背后,并且数据模型上的每个操作都必须提供某种形式的识别相关操作或数据更改的原因,这些操作或原因将与审计数据本身一起存储.
任何人都可以为我提供更好的方法来实现基于上下文的审计,这将涵盖对数据库的所有访问吗?或者甚至指出我错过了当前方法中的任何明显缺陷?
提前致谢.
我遇到过这样的代码,我需要使用ANSI标准重新编写,我想确保我保持连接正确.那么,这是什么惯例?
使用此约定的其他类型连接的语法是什么?
使用这个约定,(+) 总是在表达式的右边?
我在哪里可以了解更多相关信息?
是否有可能解释Oracle中concat()
函数和||
运算符之间的区别?
哪一个在性能方面更好?
我有一些表基本上如下:
TBL_USER
user_id - number
user_name - varchar
TBL_STUFF
stuff_id - number
stuff_user_id - number
Run Code Online (Sandbox Code Playgroud)
我想查询所有用户信息,包括他们拥有的"东西"的数量.我正在尝试这样的事情:
select user_id, user_name, count(stuff_id)
from tbl_user
left outer join tbl_stuff on stuff_user_id = user_id
where user_id = 5;
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,上面写着"不是单组小组的功能"
还有其他方法我应该这样做吗?