Plsql 如何在PL/SQL中实现堆栈?

Plsql 如何在PL/SQL中实现堆栈?,plsql,oracle11g,Plsql,Oracle11g,在Python中,它看起来像这样: class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): return self.items.po

在Python中,它看起来像这样:

class Stack:
     def __init__(self):
         self.items = []

     def isEmpty(self):
         return self.items == []

     def push(self, item):
         self.items.append(item)

     def pop(self):
         return self.items.pop()

     def peek(self):
         return self.items[len(self.items)-1]

     def size(self):
         return len(self.items)

我应该使用哪种数据结构以及如何在Oracle PL/SQL中实现堆栈?

您可以通过使用
对象
类型来实现面向对象的功能

与其他编程语言中的
类似,您可以在PL/SQL中使用
对象
来封装数据

例如堆栈定义:(从ORACLE文档链接中提取…,发布在下面。您可以在该链接中找到下面声明的定义)

CREATE TYPE Stack AS OBJECT ( 
   max_size INTEGER, 
   top      INTEGER,
   position IntArray,
   MEMBER PROCEDURE initialize,
   MEMBER FUNCTION full RETURN BOOLEAN,
   MEMBER FUNCTION empty RETURN BOOLEAN,
   MEMBER PROCEDURE push (n IN INTEGER),
   MEMBER PROCEDURE pop (n OUT INTEGER)
);