标签: plsql

PL/SQL (mod_plsql):只接受来自 POST 的参数,而不接受 GET 请求?

我正在开发一个应用程序,该应用程序使用 mod_plsql 和 Oracle 10G,通过直接从 Web 浏览器调用的 PL/SQL 存储过程生成网页。我正在寻找一种仅通过 POST 请求接受参数而不是 GET 请求的方法。

即,在 PHP 中,我只想要 $_POST['parameter_name'] 的值而不是 $_GET['parameter_name']。我一直无法在 Pl/SQL 中找到实现此目的的方法,因为参数是在过程定义中指定的,并且没有请求类型。

有什么办法可以用 PL/SQL 实现这一点吗?

谢谢你。

parameters post plsql mod-plsql

2
推荐指数
1
解决办法
1987
查看次数

PL/SQL:计算 xml 中的节点数

我正在与 Oracle 合作。

有没有办法使用 PL/SQL 计算 XML 文件中的节点(包括后代)的数量?

我希望能够将结果保存为变量以用作循环迭代器的上限。

我有以下xml,我想计算行节点内的节点数:

<row>
  <date name="date1" id="101"></date>
  <element1 name="ele1" id="111">
    <stuff></stuff>
    <stuff></stuff>
    <stuff></stuff>
  </element1>
  <element2 name="ele2" id="121"></element2>
  <element3 name="ele3" id="131></element15>
</row>
Run Code Online (Sandbox Code Playgroud)

结果应该是 7。

@johnbk 我正在与 Oracle 合作

这里的想法是,在获得节点数后,我可以将其用于:

nodeCount := 1;
    FOR i IN 1 .. numNodes
    LOOP
        xpath1 := '/row/*[' || nodeCount || ']/@name';
        SELECT EXTRACT(form_xml, xpath1) as other_name;
        nodeCount := nodeCount +1;
    END LOOP;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

xml plsql count nodes

2
推荐指数
1
解决办法
2万
查看次数

在 pl/sql 块中声明变量

我正在尝试按照本指南创建pl/sql块,但在SET orderNumberSEQ.... 我究竟做错了什么?

declare
orderNumberSEQ number(5);
userid varchar(20);

begin
insert into bs_orders (userid, ono, timepurchased)
values('lilith', orderNum_seq.NEXTVAL,(SELECT current_timestamp FROM dual));

SET orderNumberSEQ := orderNum_seq.CURRVAL;

SELECT userid FROM bs_orders
where ono = orderNumberSEQ;
end;
/
Run Code Online (Sandbox Code Playgroud)

sql variables plsql declare

2
推荐指数
1
解决办法
2万
查看次数

如果 DECLARE 在 PL/SQL 存储过程中是可选的,为什么会存在?

有人告诉我,我可以declare在存储过程的声明部分中省略关键字。declare声明部分的关键字是可选的吗?如果是,那它为什么会存在?

create or replace procedure myproc is

-- starting Declaration section
DECLARE  -- is DECLARE keyword optional? Can i omit it here?
cursor mycursor as
select ...;
var1 number;
var2 varchar2;
-- end of Declaration section

BEGIN
...
END myproc;
Run Code Online (Sandbox Code Playgroud)

plsql declare

2
推荐指数
1
解决办法
4694
查看次数

如何在 oracle 10g 中计算列值?

create table ord_tbl
(
ord_id number(10) primary key,
ord_name varchar2(20),
quantity number(20),
cost_per_item number(30),
total_cost number(30)--This colm shud be (quantity*cost_per_item),
ord_date date
)
Run Code Online (Sandbox Code Playgroud)

因此,当我插入行时,'total_cost' 应该自动生成并插入到表中

sql oracle plsql oracle10g

2
推荐指数
1
解决办法
1万
查看次数

AES 加密 Java/plsql

我需要在 Java 和 plsql(Oracle 10g 的 DBMS_CRYPTO)上实现相同的加密/解密应用程序。

这两个实现都工作正常,但这里的 pb 是我得到不同的输出来加密相同的纯文本。下面是用于加密/解密过程(Java 和 PLSQL)的代码。

我对 DBMS_CRYPTO 和 Java 使用了相同的加密算法“AES/CBC/PKCS5Padding”。这里的问题是我得到了不同的输出来加密相同的纯文本。

import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.*;
import org.apache.commons.codec.binary.Hex;

public class AESencrp {

    private static final String ALGO = "AES/CBC/PKCS5Padding";


    private static final byte[] keyValue = "MyEncryptionKey1".getBytes();
    private static Key key;
    private static Cipher decryptor;
    private static Cipher encryptor;


    public static  void init() throws Exception 
    {

        key = generateKey();
        encryptor = Cipher.getInstance(ALGO);
        IvParameterSpec iv = new IvParameterSpec(Hex.decodeHex("12345678901234567890123456789012".toCharArray()));   
        decryptor=Cipher.getInstance(ALGO);
        encryptor.init(Cipher.ENCRYPT_MODE, key,iv); …
Run Code Online (Sandbox Code Playgroud)

java encryption plsql aes

2
推荐指数
1
解决办法
6213
查看次数

获取“插入或更新”触发器内的操作类型

我们可以在Insert or Update触发器内部捕获由于Insert或由于Update语句而触发的触发器吗?

了解这一点的一种方法是为两者Insert和Update

但如果我能在一个触发器内做到这一点,那就太好了。

database oracle triggers plsql oracle11g

2
推荐指数
1
解决办法
2102
查看次数

Oracle 绑定变量 - 请求查询

我想为我的 Oracle SQL 查询创建一个基于绑定参数的结果。

例如。

Select * from emp where ename = :xyz;

它应该在运行时询问我的 xyz 值。

我该怎么办?

它让我保持 givig 错误 - 未声明绑定变量...

请帮忙...

谢谢。

oracle plsql oracle-sqldeveloper

2
推荐指数
1
解决办法
3912
查看次数

触发编译但不插入行

我正在尝试创建一个触发器,该触发器在触发时将数据插入到具有USER和SYSDATE数据的另一个表中。脚本但未从TRIGGER插入任何数据。

我正在运行Oracle Server。

 SET SERVEROUTPUT ON;

  CREATE TABLE dept1
 ( DEPTNO NUMBER(3) PRIMARY KEY,
  DNAME VARCHAR2(20),
  LOC VARCHAR2(20)
 );

 CREATE TABLE dept1_shadow
 ( DEPTNO NUMBER(3) PRIMARY KEY,
  DNAME VARCHAR2(20),
  LOC VARCHAR2(20),
  USER_ VARCHAR2(32),
  MODTIME CHAR(17)
  );

 INSERT INTO dept1 VALUES (10, 'ACCOUNTING', 'NEW YORK');    
 INSERT INTO dept1 VALUES (20, 'RESEARCH',   'DALLAS');    
 INSERT INTO dept1 VALUES (30, 'SALES',      'CHICAGO');   
 INSERT INTO dept1  VALUES (40, 'OPERATIONS', 'WASHINGTON (D.C.)');    
 INSERT INTO dept1  VALUES (50, 'MARKETING', 'BOSTON');


CREATE OR REPLACE TRIGGER row_dept1_trigger
 AFTER INSERT …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql database-trigger

2
推荐指数
1
解决办法
50
查看次数

遇到符号

我是oracle pl / sql的新手。我创建了新的程序包过程列表,然后想在单独的块中实现每个过程。这是我现在想要创建的过程列表,它仅仅是一个。

create or replace package listProcedures is

  procedure bss_claim12
  ( o_claim_id out number,
    o_error_code out varchar2,
    o_error_msg out varchar2,
    i_card_number varchar2,
    i_phone_number varchar2,
    i_product_id number,
    i_summ_loan number,
    client_code number,
    mfo varchar2
  );
Run Code Online (Sandbox Code Playgroud)

然后我想创建它的主体,但出现以下错误。PACKAGE BODY IBS.LISTPROCEDURES的编译错误

错误:PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:

create or replace package body ibs.listprocedures is
  procedure bss_claim12
  ( o_claim_id out number,
    o_error_code out varchar2,
    o_error_msg out varchar2,
    i_card_number varchar2,
    i_phone_number varchar2,
    i_product_id number,
    i_summ_loan number,
    client_code number,
    mfo varchar2
) is
 begin
   dbms_output.put_line(o_claim_id);
   dbms_output.put_line(o_error_msg);
   dbms_output.put_line(client_code);
   end bss_claim12;
Run Code Online (Sandbox Code Playgroud)

我应该在此程序的主体中做些什么才能使其正常运行。

oracle plsql procedure

2
推荐指数
1
解决办法
28
查看次数