在 Oracle SQL Developer 中,如何创建或更新过程并将架构名称设为变量:
define my_schema_name = 'schema_1';
CREATE OR REPLACE PROCEDURE my_schema_name.updateDBUSER(
p_userid IN DBUSER.USER_ID%TYPE,
p_username IN DBUSER.USERNAME%TYPE)
IS
BEGIN
UPDATE DBUSER SET USERNAME = p_username where USER_ID = p_userid;
COMMIT;
END;
Run Code Online (Sandbox Code Playgroud)
现在,我创建了该表的上方,为了进行测试,我将给出 3 个文本框值,如下所示。
SqlCommand cmd = new SqlCommand
("Insert Into dbo.PrnInf(PrnName, PrnSurName, PrnEgn ) Values
('"+txtPrnName.Text+", "+txtPrnSurName.Text+","+txtPrnEgn.Text+"')", conn);
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
但是,我在“cmd.execute”中遇到错误。此外,我在主键上定义了主键和身份规范。故事的寓意,是否需要填充数据库中的所有表?
此致,
好的,oracle 11g 中的强制表空间是什么。我的研究使我相信其中有三个:系统、Sysaux 和撤消。但是,由于我正在参加 OCA 和所有问题(和文章),因此我已经阅读了有关必填空格的内容,并且只回答说两个空格是必填的,并且根据问题的出处,答案会有所不同。
系统是强制性的。这是事实,无可争议。
Sysaux 和 Undo 表空间是有问题的。哪一个?我的研究再次让我相信这三个都是,但是 oracles 文档在这一点上没有帮助(或者我在搜索中使用了错误的关键字?)并且练习问题让我相信测试正在寻找两个表空间。
我有一个过程,它遍历数据库中的所有对象并为它们分配适当的权限给该对象。我想知道是否有更好的方法来做到这一点?我使用模型数据库来创建新数据库,因此每次创建新数据库时都必须运行它。这是它的外观的一个想法(注意:从一开始就丢失了一个块,它会删除所有用户并重新创建必要的用户;自从 SID 更改后,这是必要的):
CREATE PROCEDURE usp_SetPermissions
AS
BEGIN
DECLARE @CurrentId INT
DECLARE @ObjectName NVARCHAR(128)
DECLARE @Message NVARCHAR(160)
DECLARE @Error INT
DECLARE @Sql NVARCHAR(256)
CREATE TABLE #tmpDbObjects
(
ID INT IDENTITY(1,1),
ObjectName NVARCHAR(128),
Completed BIT
)
INSERT #tmpDbObjects(ObjectName, Completed)
SELECT DISTINCT [Name], 0 As Completed
FROM sys.objects
WHERE [type] = 'U' AND is_ms_shipped <> 1
WHILE EXISTS (SELECT 1 FROM #tmpDbObjects)
BEGIN
-- Pick first uncompleted object
SELECT TOP 1 @CurrentId = ID,
@ObjectName = ObjectName
FROM #tmpDbObjects
-- Grant permissions …Run Code Online (Sandbox Code Playgroud) 晚上好,
是否有面向对象的 PL/SQL 替代品,允许编写服务器端过程[然后称为客户端或服务器端]?
(适用于 MySQL、PostgreSQL、Oracle 等)
我将如何在 postgres 中做到这一点:
假设我有一个 x 和 ay,我想显示所有可能的组合:
xx
yy
xy
yx
Run Code Online (Sandbox Code Playgroud)
我怎样才能让 postgres 为我做这件事?
SQL> set oracle_sid=sid
SP2-0735: unknown SET option beginning "oracle_sid..."
SQL> emctl start dbconsole;
SP2-0734: unknown command beginning "emctl star..." - rest of line ignored.
SQL> set oracle_sid=sid emctl start dbconsole;
SP2-0735: unknown SET option beginning "oracle_sid..."
SQL> SQL> set oracle_sid=sid
SP2-0734: unknown command beginning "SQL> set o..." - rest of line ignored.
SQL> SP2-0735: unknown SET option beginning "oracle_sid...
Run Code Online (Sandbox Code Playgroud)
为什么调用这个服务?你能告诉我吗?
我正在尝试运行更新查询,但仍然需要很长时间我在其中进行了提交。将提交设置为更高的值 (5000) 还是更低的 (1) 更好?我要更新2100万表中的1500万条记录
编辑这里是我的更新查询,但我需要知道我应该设置提交的低/高
DECLARE
CURSOR c_itemloc
IS
SELECT item, loc
FROM dc_item_loc;
l_item item_loc.item%TYPE;
l_loc item_loc.loc%TYPE;
i NUMBER;
l_commit VARCHAR2(1) := 'Y';
BEGIN
i:=0;
FOR r_itemloc IN c_itemloc
LOOP
i := i+1;
UPDATE item_loc il
SET il.status = 'D',
il.last_update_datetime = get_vdate,
IL.LAST_UPDATE_ID = 'CNVOBJ_RNG'
WHERE item = r_itemloc.item
AND loc = r_itemloc.loc;
IF l_commit = 'Y' AND mod(i, 5000) = 0 THEN
COMMIT;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('YOU FAIL');
END;
Run Code Online (Sandbox Code Playgroud) 您可以创建索引并定义前缀长度,因此索引将仅存储每个列值的第一个起始符号。在 MySQL 中它看起来像这样:
CREATE INDEX table_idx ON emp(last_name(8));
Run Code Online (Sandbox Code Playgroud)
在 Oracle 中是否有其他方法可以做到这一点?
我在 AWS RDS 上使用 Postgres。
我的应用程序正在使用 AWS KMS 加密对表中的选定列进行加密。
我尝试过,但找不到配置 KMS 密钥并使用decrypt()in select 查询的方法。
例如,我的应用程序正在myTable.secureColumn使用 KMS 进行加密。
现在,我正在尝试触发以下查询:
select * from myTable where decrypt(secureColumn, 'key', 'aes') = 'data';
Run Code Online (Sandbox Code Playgroud)
我没有找到如何在 pgCrypto 中配置 KMS 密钥并在上面的查询中使用。
有没有人试过这个?
提前致谢。
作为入门级求职者,为了对数据库充满信心,我完成了 OCA 认证。现在我想知道这遵循什么职业道路。是否可以通过此认证进入数据挖掘、BI 或研发领域?
而且我听说 DBA 对实验人员来说很无聊而且很冒险。
oracle ×6
postgresql ×2
sql-server ×2
amazon-rds ×1
aws ×1
career ×1
encryption ×1
hsm ×1
index ×1
oracle-11g ×1
plsql ×1
primary-key ×1
scripting ×1
security ×1