我不熟悉PL/SQL。有人能解释一下为什么我不能做下面的事情吗?
BEGIN
IF TRUE THEN
CREATE INDEX TestIndex ON SomeTable (SomeColumn);
END IF;
END;
我会得到以下错误:
错误报告: ORA- 06550 :第3行,第5列: PLS-00103:遇到符号"CREATE“,因为需要以下内容之一: begin case declare exit for goto if loop mod null杂注raise return select update while with << clo
我在Oracle中有一个PL/SQL表类型/关联数组。
CREATE OR REPLACE TYPE STRING_TBL IS TABLE OF VARCHAR2(3000);
,我可以在上面执行这样的选择查询
...
strings STRING_TBL;
...
SELECT * FROM TABLE(strings);
但是,结果集中这一列的列名是什么?也就是说,我需要在<name_of_only_column>中加入什么才能使这个查询工作:
SELECT rowid, p.<name_of_only_column>
FROM TABLE(strings) p;
我在管理高级自定义字段时遇到了问题(我有4个)。当我添加新帖子时,我想检查其中是否有一些是空的。我尝试了诸如空($_post‘’name_of_post_meta‘)之类的东西,但它不起作用。我怎么才能赶上
function wpse120996_add_custom_field_automatically($post_id)
{
global $wpdb;
if (!wp_is_post_revision($post_id)) {
$category = get_the_category($post_id);
我试图为动态操作编写以下PL/SQL函数体
动态动作的目的是根据输入参数来设置文本区域的值。我尝试这样做的方法是,将值设置为不同选项的变量。
declare
P_NOTE varchar(100); -- derive value
P_WEBSERVER varchar(100); -- derive name
begin
-- for getting the P_NOTE value
select distinct note into P_NOTE from port_mapping where PLATFORM = :P3_PLATFORM and VERSION = :P3_
我能够在中运行PL/SQL过程吗?
PL/SQL过程
create or replace PROCEDURE greetings
AS
BEGIN
dbms_output.put_line('Hello World!');
END;
这里是DB日志:
Connecting to the database Oracle_XXXX.
Hello World!
Process exited.
Disconnecting from the database Oracle_XXXX.
但是我无法调试PL/SQL过程并获得错误日志?
这里是错误DB日志:
Connectin
与非常类似,我希望从函数返回一个结果集,并使用这个结果集,就像使用一个普通的表一样,但是我想在一个过程中(使用>= 11版本)来完成这个任务。
我的基本意图是允许将动态查询的结果用作非常复杂的静态SQL语句的起点。
对于直接来自SQL*加号的调用,存在多个解决方案,但它们在过程中运行时似乎都失败了。例如,使用“”:
SQL> WITH q AS (SELECT * FROM TABLE(method4.query('select id, pid from
2 my_table where rownum < 100')))
3 SELECT * F
我想在PL SQL查询中添加一个列,但是语法与SQL不同,我不知道如何做。在SQL中,我可以使用:
SELECT CustomerName,"Big" AS Round FROM Customers;
使用现在著名的northwind数据库,这将产生如下结果:
CustomerName / Round
Alfred / Big
但是,如果我在PL SQL中使用相同的语法,则会导致
"ORA-00904:“大”:无效标识符“错误。
如何创建该列并使用所需数据填充该列?
在编写PL/SQL块时,我得到如下所示的错误。请告诉我这个错误的原因?
DECLARE
TYPE TABLE_NAME IS VARRAY(17) OF VARCHAR(255);
TABLENAME TABLE_NAME;
TOTAL INTEGER;
BEGIN
TABLENAME := TABLE_NAME ('FA_AS_ASSIGNMENTS','FA_PE_PHONES' );
TOTAL := TABLENAME.COUNT;
FOR i IN 1 .. TOTAL
LOOP
INSERT
我想执行匿名PL/SQL并需要获取结果集对象。我得到了可以通过在PL/SQL块中使用游标来完成的代码。
但是PL/SQL块本身将以文本形式来自数据库。所以我不能编辑PL/SQL块。并且它只返回两个列名始终相同的值。它将返回2列组合值的列表。
在这里,我给出了示例PL/SQL。
BEGIN
RETURN 'select distinct fundname d, fundname r from <table> where condition order by 1';
EXCEPTION
WHEN OTHERS THEN
RETURN 'SELE
我有下面的PL/SQL块,它工作得很好。我想从另一个PL/SQL块调用这个函数(TimeToFrame)。
我不能在存储在DB中的过程或包中声明此函数。换句话说,如果pl/sql和pl/sql都是匿名块,我如何从另一个pl/sql调用pl/sql?
如果我把这个函数放在一个单独的.sql文件中会怎么样?我不能从我的匿名块中调用那个.sql文件,并给它传递一些IN参数,然后让那个函数返回OUT参数吗?
Declare
nTime Number;
FUNCTION TimeToFrame(pTime IN Varchar2)
return NUMBER IS
nTime NUMBER;
BEGI
我需要编写一个PL/SQL过程来创建与另一个帐户(我有权访问该帐户)中的表相匹配的表。它们需要具有相同的列和类型。此外,它们还需要填充相同的数据
帮帮我!
编辑:
SQL> CREATE OR REPLACE PROCEDURE MakeTables
2 AS
3 BEGIN
4 EXECUTE IMMEDIATE
5 'CREATE TABLE Table1 AS (SELECT * FROM ANOTHER_ACCT.Table1);
6 CREATE TABLE Table2 AS (SELECT * FROM ANOTHER_ACCT.Tab
我想确保每次登录时,日期格式从'24-Apr-2014'更改为'24/04/2014'
为此,我创建了一个pl/sql触发器,如下所示
CREATE OR REPLACE TRIGGER CHANGE_DATE_FORMAT
AFTER LOGON ON DATABASE
BEGIN
ALTER SESSION SET NLS_DATE_FORMAT = 'MM/DD/YYYY';
END;
/
然而,我并没有以sysdba的身份登录,所以可能这就是我得到错误的原因。
SQL> @C:/p
问题
是否可以用插入替换连接表的所有科尔?比如像这样。
select distinct
p.product_id,
i.filename,
pl.* -- instead of pl.price_tax, pl.price_rec, etc.
from
s_product p
left join s_product_image i on i.product_id = p.product_id
left join s_pricelist_generated_lists pl on pl.product_id = p.product_id
使用Postgres 11.5
编辑
第一个错误。为什么
如何将此MYSQL查询更改为sql server
SELECT
id.value AS ICDCode,
items.itemName AS ProblemListDescription,
COUNT(*) as UsageCount
FROM problemlist pl
INNER JOIN items
ON pl.asmtId = items.itemId
LEFT OUTER JOIN itemdetail id
ON (items.itemId=id.itemId AND id.propId=13 )
WHERE (pl.SNOMED='
UPDATE XXBBBY_WEEK_DATA_CNV_STG
SET
process_status = CASE
WHEN error1 = 'No week data Details found' THEN 'E',last_update_time=sysdate
WHEN error1 = 'Processed successfully' THEN 'P'
WHERE process_status = 'N';
行/列: 1/1 PL/ SQL : SQL语句已忽略行/列: 6/5 PL/SQL: OR
我试图通过plsql存储过程将数据从一个表插入到另一个表,这个存储过程将创建一个表,然后插入。但是,我得到一个错误,即SQL命令没有正确结束。请建议一下。
我的存储过程是:
create or replace show errors procedure persons_insert
as
a1 int;
id1 int;
ac int;
fn varchar2(20);
mn varchar2(20);
ln varchar2(20);
gen varchar2(3);
ey varchar2(10);
co
我是第一次接触pl/sql!我正在尝试使用一种简单的冒泡排序算法对记录表进行排序。有什么问题吗?
在哪里可以找到有关使用记录表的更多信息?
DECLARE
text VARCHAR2(50);
TYPE TIP_VECTOR
IS
TABLE OF INT INDEX BY BINARY_INTEGER;
TYPE contorRecord
IS
record
(
codASCII VARCHAR2(3),
contor SMALLINT);
TYpe tip_vector2
IS
TABLE OF contorRec
我试图在APEX5.0中的应用程序项上实现一个验证。我使用PL/SQL函数返回布尔值
begin
if exists (select id_referencia
from items
where id_referencia = :P2_REFERENCIA)
then
return true;
else
return false;
end if;
end;
当我提交页面时,我会得到以下错误
ORA-06550:第2行,第4列: PLS-00204:函数或伪列“存在”可以在SQL语句中使用,只有ORA
Declare
Type Dep_Rec_Typ Is Record ( Dep_Id Number
, DEP_NAME VARCHAR2(30)
);
Type Dep1 Is Table Of Dep_Rec_Typ;
Type Emp_Rec_Typ Is Record ( Employee_Id Number(6)
, First_Name Varchar
我想返回varchar2中几个列的值(带有一个函数),但是当我在select中选择几个列时,我会得到一个错误。
FUNCTION FU_PRUEBAS (P_IDNUM MAC.IDNUM%TYPE) RETURN VARCHAR2 IS REGISTRO VARCHAR2(100);
BEGIN
select NOMBRES, FECHANACIMIENTO INTO REGISTRO
from MAC WHERE IDNUM = P_IDNUM;
RETURN REGISTRO;
错误:
错误(17,6):PL/ SQL :忽略SQL语句
错误(18
我需要连接两个表(Person和PersonLine)。结果应该包含Person表中的id和name列,以及每个id的PersonLine表中personlineid列的计数。但是sql查询返回所有personlineid的计数。有人能帮助形成sql吗。
人:
ID NAME AGE
100 John 25
101 James 30
102 Janet 35
PersonLine:
ID NAME PERS
我对PL/SQL完全陌生。我编写了以下PL/SQL脚本。但是它不执行,并给出编译错误:
set serveroutput on SIZE 1000000;
IF EXISTS (select * from my_table)
begin
dbms_output.put_line('has rows');
end;
else
begin
dbms_output.put_line('no rows');
end;
有人能告诉我这是怎么回事吗?
我该怎么做?