我正在尝试编写简单的PL/SQL过程来在Oracle Schema中重建索引。
代码在作为PL/SQL匿名块编写和执行时运行良好,但在作为PL/SQL过程编写和执行时抛出错误。
请看一看,并回应任何关于如何解决这个小难题的陷阱或建议。
--IDX_REBUILD: Anonymous Block
set timing on;
SET SERVEROUTPUT ON;
DECLARE
CURSOR Index_Cur IS
SELECT owner, index_name
FROM cjb_indexes
WHERE (owner li
我试图根据这个中提供的指令进行插入。
我可以运行这个例子
CREATE OR REPLACE PROCEDURE test_proc (p_array_size IN PLS_INTEGER DEFAULT 100)
IS
TYPE ARRAY IS TABLE OF all_objects%ROWTYPE;
l_data ARRAY;
CURSOR c IS SELECT * FROM all_objects;
BEGIN
OPEN c;
LOOP
FETCH c BULK COLLECT INTO l_data LIMIT p_array_size;
我有一个错误的查询,比如
Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_100_CS_AS" in the equal to operation.
我知道我可以用下面的SQL语句解决这个错误:
ALTER TABLE [TableA]
ALTER COLUMN [ColumnX]
VARCHAR(20) COLLATE SQL_Latin1_General_CP1_CI_AS;
我遇到的问题是,我有一个存储过程,其
我正在尝试运行一个过程,在这个过程中,我将发送表名,从it..so中获取所有不需要创建不同procedure...but的记录--我在这方面遇到了一些问题。
ALTER PROCEDURE [dbo].[getTableData]
-- Add the parameters for the stored procedure here
@tableName Varchar(100),
@whrFldName NVarchar(100)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interferin
我是一名java/j2ee开发者。我总是喜欢JPA/JTA或hibernate for ORM。因为它给了我可移植性。但对于大型应用程序,可移植性有时并不那么重要。很多时候,他们要求按BE方式使用PL/SQL。我总是觉得这没有必要。除了数组和调度等,使用PL/SQL时,应用程序逻辑在java和PLSQL中变得支离破碎。
PLSQL在性能/设计/可维护性方面更好的业务/应用场景是什么?
我对PL/SQL相当陌生,并被指派维护一个使用PL/SQL作为前端生成的WEB页面的PL/SQL系统(PL/?)。由于应用程序的复杂性,我试图从Oracle Developer Tools for Visual Studio (11.2.0.3.15)或Oracle的SQL开发人员那里获得调试器。
我无法从开发环境中启动应用程序,所以我在试图调试的包中使用DBMS_DEBUG_JDWP.CONNECT_TCP('10.15.1.177‘、'4000')和DBMS_DEBUG_JDWP.DISCONNECT()过程。
在Visual中启动Oracle调试侦听器时,Tool
我需要截断表,然后使用过程在该表中插入数据。
然而,一个人喜欢dinamic,而另一个人不喜欢:
create or replace
procedure RECREATE_AGGREGATE
AUTHID DEFINER
AS
BEGIN
TRUNCATE TABLE AGGREGATE;
INSERT INTO AGGREGATE SELECT * FROM OLD_AGGREGATE;
END;
错误(6,14):PLS-00103:在需要以下内容之一时遇到符号"TABLE“::=。(@%;在":=“之前插入符号"TABLE”以继续。
我有两个数据库,一个在本地服务器上;
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
"CORE 11.1.0.7.0 Production"
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
另一个是VM:
Oracle Database 11g En
我正在使用存储的PL/SQL过程作为web应用程序的一部分来同步表-当它们点击一个按钮时,它就会进行同步。PL/SQL以用户A的身份执行,但需要禁用索引并同步模式B中的几个表。我无法让用户A 'alter index B.indexName unusable‘,尽管授予它'alter any index',甚至在绝望中也是如此。错误为ORA-01418:指定的索引不存在。这是在另一个开发人员的沙箱上工作,但我不知道为什么。任何建议都将不胜感激。
我是Oracle PL/SQL编程中的新手,但我试图学习如何在一个事务中进行PL/SQL中的所有查询,并在这些查询中出现问题时正确回滚,下面是我为达到此目的而制定的模式:
create or replace procedure transaction_safe(var in varchar2)
is
begin
SAVEPOINT start_point;
/* a lot of DML queries here....*/
EXCEPTION
WHEN OTHERS THEN
ROLLBACK TO start_point;
在SQL*Plus中运行PL/SQL脚本有问题。我可以正常运行SQL命令,但是当我想运行任何PL/SQL代码时,它不会给出任何结果。请参阅下面的代码和输出。
DECLARE
x_salary employee.salary%TYPE;
BEGIN
select salary
into x_salary
from employee
where ssn=&enter_ssn;
--Output the result
DBMS_OUTPUT.PUT_LINE('Salary is ' || x_salary)