我同时请求一个表中的特定行,PL/SQL语句用于通过从同一表中的主行读取数据来更新表,并更新它读取的当前范围行和主行。算法是这样的:
Declare
variable declaration
BEGIN
Select (Values) into (values1) from table where <condition1> for update;
select count(*) into tempval from table where <condition2>;
if (tempval == 0) then
insert into table values
当添加新行时,我试图创建一个触发器,该触发器将值从一个列(“notube”)复制到同一表的另一个列(“notubes左侧”)。触发器编译正确,但当我插入新行时,它会抛出一个错误。
我的扳机是:
create or replace TRIGGER NOTUBESLEFT_INSERT_TRIGGER
AFTER INSERT ON SAMPLES FOR EACH ROW BEGIN
update samples
set notubesleft = (select notubes from samples where sampleid = :new.sampleid);
END;
我想根据同一表的其他行更新表的某些行:
我试试看:
UPDATE MyTable set myField =
(SELECT T1.myField
FROM MyTable T1
WHERE T1.id.substring(start,stop) = MyTable.id.substring(start,stop))
但是OrientDB抛出了这样一个错误:
com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #X
我想要查找具有特定列值的交互式网格的行。在这个employee交互式网格中,我想要获取EMP状态为"Active“的所有行。另外,我想知道该行是否被修改过。是否可以使用js或PL/SQL?
emp name | emp status
-------- |------------
Jane Active
-------- |------------
Doe Inactive
-------- |------------
Helan Active
-------- |------------
我想将随机数据生成到Oracle表中:
第一表
-- TABLE AGENT_HISTORY
CREATE TABLE AGENT_HISTORY(
EVENT_ID INTEGER NOT NULL,
AGENTID INTEGER NOT NULL,
EVENT_DATE DATE NOT NULL
)
/
CREATE INDEX IX_RELATIONSHIP1 ON AGENT_HISTORY (AGENTID)
/
-- ADD KEYS FOR TABLE AGENT_HISTORY
ALTER TABLE AGENT_HISTORY ADD CONSTRA
我很难理解pl/sql触发器出了什么问题。错误是: Error: ORA-01422:确切的fetch返回的行数大于请求的行数ORA-06512:在"SYSTEM.TRG_LATE_RETURN“处,第6行ORA-04088:触发器'SYSTEM.TRG_LATE_RETURN‘01422执行过程中的错误。00000 -“确切提取返回的行数大于请求的行数”*原因:在精确提取中指定的数目小于返回的行数。*操作:重写查询或更改请求的行数
我的扳机如下:
create or replace trigger trg_late_return
before update of DETAIL
我正在创建一个触发器,它将根据更新后的更新和更新中引用的某些文本将记录插入到另一个表中。
CREATE OR REPLACE TRIGGER NCATSPROD_PM.DEACTIVATE_USERS
AFTER UPDATE OF "CHANGEBY_CHAR" ON NCATSPROD_PM.PM_USER_DATA
REFERENCING NEW AS "BICSUPP"
BEGIN
INSERT INTO NCATSPROD_PM.DEACTIVATED_USERS (USERNAME, EMAIL, DEACTIVATED_DATE)
这可能是一个基本的问题,但我是Oracle SQL的新手。我正在尝试让下面的SQL在Oracle SQL Developer中执行。错误信息位于代码下方。自从粘贴了错误消息后,我已经修改了代码。第28行是代码中的最后一行“END”;第14行第1列引用单词"Select“。 DECLARE
v_StartDate Date := &StartDate;
v_EndDate Date := &EndDate;
SET v_StartDate := CASE &StartDate
WHEN TO_DATE('01/01/1900'
我正在使用Oracle中的以下代码创建一个过程--创建或替换过程weekely_report
(W_start IN weekely_report.StartDate%TYPE, W_end IN
weekely_report.EndDate%TYPE)
IS
BEGIN
UPDATE weekely_report
SET commission_amount = Sales_Amount*Com_Rate
where (StartDate-EndDate) = (w_start- W_end);
SELECT concat('New Commission amount of&
我想大容量更新同一表中的一些行。我有一个表,比方说表A,列是Id和OriginalID。我想编写一个包含内部联接和其他一些表的组合的查询:
Update TABLEA
SET OriginalID = Id
FROM TABLEA A
INNER JOIN TableB B ON <join condition>
INNER JOIN TableC C ON <join condition>
WHERE c.SomeCol = <value>
这适用于Server 2005,而对于Oracle,则会出现错误
SQL错误: ORA-00933: SQL命
在下面的示例中,
variable recordId number;
BEGIN
SELECT MAX(recordvalue)
INTO recordId
FROM sometable;
END;
PRINT recordid;
SELECT *
FROM someothertable
WHERE recordkey = &recordId;
最后一行上的select语句无法访问recordId的值。我知道我可以使用:recordId访问pl/sql块中的recordId,但是有没有办法在不在pl/sql块中的sql语句中访问recordId呢?
我正在尝试实现一个存储过程,它更新我的表(超过10k行),但只更新一定数量的行rownum
当前步骤:
create or replace PROCEDURE P_UPDATETOANON AS
BEGIN
UPDATE PERSONENVERKEHR_VERTRIEBSSYS15.HIST_TEST
SET TS_RESPONSIBLE = 'test'
WHERE TS_RESPONSIBLE != 'test'
AND length(TS_RESPONSIBLE)
我正试图为我的表创建一个触发器,名为quailmiles。当总里程达到某个数字时,我希望改变人员的状态(这是同一表中的一个属性)。由于某种原因,我的代码不起作用。
该错误当前内容如下:
#1064 -您的SQL语法有一个错误;请检查与您的MySQL服务器版本对应的手册,以便在第9行使用接近“”的正确语法。
delimiter $$
CREATE TRIGGER status_update
AFTER UPDATE ON quailmiles
FOR EACH ROW BEGIN
IF (total_miles > 2000) THEN
UPDATE quailmiles
我正在运行一段sql代码,将数据从txt格式化为decimal。我写的代码运行得很好,但速度很慢 删除。替换为。将0中的空行标记为NULL转换NUll 这看起来运行了5次,而不是1次 UPDATE PL01_SHIPMENT SET [Shipment Net Profit By Chargeable Wight] = REPLACE([Shipment Net Profit By Chargeable Wight], '.', '')
UPDATE PL01_SHIPMENT SET [Shipment Net Profit By Chargeable Wi
我是pl/sql的新手,所以这可能是一个愚蠢的问题,我创建了一个简单的PL/SQL程序:
DECLARE
inputData VARCHAR2(1024);
BEGIN
inputData :='&&inputData' ;
Dbms_Output.put_line('Value entered is:' || inputData);
END;
/
当我运行这个程序时,我得到了以下输出:
Enter value for inputdata: check
old 4: inputD
我已经创建了以下表和类型...
CREATE TYPE ACTOR_QUOTE_TYPE AS OBJECT (
Movie_Title CHAR(36),
Year NUMBER,
Role CHAR(36),
Quote CHAR(255)
)
/
CREATE TYPE AQ_NT AS TABLE OF ACTOR_QUOTE_TYPE
/
CREATE TABLE ACTOR_QUOTES (
ACTORID CHAR(5),
QUOTES AQ_NT
) NESTED TABLE QUOTES STORE AS ACTOR_QUOTES_NT
/
我需要创建一个.
我不太喜欢地理空间数据,我有以下问题。我正在使用MySql,并且在试图在此表行中添加以点作为类型的字段的值时发现了一些困难。
我有一张这样的桌子:
CREATE TABLE MarketDetails (
id BigInt(20) NOT NULL AUTO_INCREMENT,
localization_id BigInt(20) NOT NULL,
market_name VarChar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
market_cod
在工作中,我有一个很大的表(大约300万行,比如40-50列)。有时我需要清空一些列,然后用新数据填充它们。我没想到的是
UPDATE table1 SET y = null
例如,在sql查询中从同一表的其他列中生成的数据或子查询中的其他表中查询的数据,所需的时间比用这些数据填充列要多得多。如果我一次遍历所有表行(就像上面的update查询中那样),或者我使用游标逐行遍历表(使用pk),这都没有关系。如果我在工作中使用大表,或者我创建一个小的测试表并用几十万个测试行填充它,这都无关紧要。将列设置为null总是比用一些动态数据(每行不同)更新列要长得多(在整个测试过程中,我遇到的因子是2到10
我试图打开pl/sql触发器来计算表中某些单元格的总数。这是代码:
ALTER session SET nls_date_format='dd/mm/yyyy';
CREATE OR REPLACE TRIGGER TOTAL
AFTER UPDATE OR INSERT ON ORDER_ITEMS
FOR EACH ROW
DECLARE
temp NUMBER;
today DATE;
BEGIN
temp:=(:NEW.item_price-:NEW.discount_amount)*:NEW.quantity;